sortir des frames - PHP - Programmation
Marsh Posté le 22-08-2002 à 11:38:11
ouais je sais c'est un peu confus, désolé...
bon en fait, y'a des frames dans lesquelles les pages affichées sont générées en PHP
Ici c'est un petit forum sans prétention, et après l'ajout d'un message, je reviens à l'affichage de tous les messages. Cela se fait avec une fonction INCLUDE
(en fait je bidouille pour arranger un forum déjà programmé par un copain, voila pourquoi cette structure n'est aps très propre...)
Marsh Posté le 22-08-2002 à 11:40:16
ce sont des frames HTML (tag <frameset> et compagnie) ?
si oui je vois pas trop le rapport entre les frames et les fonctions PHP
PHP : côté serveur
Frames : côté client
tu peux pas modifier les frames depuis le PHP, la seule chose que tu puisses faire c'est qu'un lien <a href> modifie les frames (target=...)
Marsh Posté le 22-08-2002 à 11:43:54
ouais je crois que j'ai compris mais tu confond php et html
- l'attribut TARGET c'est pour les balises de <A> (en HTML donc)
- la fonction include(); en PHP ne prend pas d'attribut
donc dans le lien "retour" par exemple il faut mettre :
<a href="..." target="frame_droite">
pour afficher la page dans la frame de droite donc "sortir" des autres... rien à voir avec php !
Marsh Posté le 22-08-2002 à 11:48:27
ou alors en Javascript (mieux car 'target' n'existe pas dans les dernière normes HTML/XHTML)
window.parent.location = "ton URL";
Marsh Posté le 22-08-2002 à 11:59:56
en fait, si le message n'est pas vide, le formulaire ajoute avec INSERT le nouveau message et une fois que c'est fait j'affiche tous les messages automatiquement avec la fonction include. S'il est vide, j'utilise include pour réafficher la page AJOUT de message.
Or cette page "Ajout de message" est composée d'une frame HAUTE et d'une FRAME BASSE (haute pour le message, et basse pour le téléchargement d'une image).
Mais quand je sors de la page AJOUT, j'aimerais que le bandeau du bas pour le téléchargement disparaisse...
voici l'url : http://98a.free.fr/forum/forum.php3
[edit] : donc, je n'utilise pas un lien pour sortir de la page qui sert à ajouter le message mais cela est automatiquement géré par la fonction INCLUDE ( "xxx" ) qui réaffiche le forum. Y-a-t'il un moyen pour forcer la sortie de la frame, en gardant cette sortie automatique sans avoir à cliquer sur un lien?
Marsh Posté le 22-08-2002 à 12:08:35
antp a écrit a écrit : PHP : côté serveur Frames : côté client tu peux pas modifier les frames depuis le PHP, la seule chose que tu puisses faire c'est qu'un lien <a href> modifie les frames (target=...) |
oui tu as raison, j'ai bien compris le principe... donc tu penses que je ne peux pas sortir de la frame avec la page PHP qui y est affichée... comment faire alors, sans cliquer sur un lien?
Marsh Posté le 22-08-2002 à 12:19:10
bon je vois le prob
par contre je sais pas trop comment tu pourrais résoudre ça facilement.
ça va être via du javascript je pense...
Marsh Posté le 22-08-2002 à 12:19:28
ANTP :
essaye maintenant d'ajouter deux messages, tu verras que le bandeau du bas apparait autant de fois que tu appuyes sur AJOUTER... voila pourquoi je cherche à sortir de cette frame... toujours pas clair?
j'hésite un peu à mettre tout le code en ligne car y'en a au moins 5 ou 6 fichiers ...
Marsh Posté le 22-08-2002 à 12:20:24
oui j'ai bien compris... mais bon là je vais aller manger donc j'y réfléchirai plus tard
Marsh Posté le 22-08-2002 à 12:20:24
antp a écrit a écrit : bon je vois le prob par contre je sais pas trop comment tu pourrais résoudre ça facilement. ça va être via du javascript je pense... |
Aïe, j'y connais rien au javascript moi....
Ok, merci quand meme et bonap !
Marsh Posté le 22-08-2002 à 12:24:05
gm_superstar a écrit a écrit : ou alors en Javascript (mieux car 'target' n'existe pas dans les dernière normes HTML/XHTML) window.parent.location = "ton URL"; |
on dérive encore, mais franchement ça m'attriste qu'on doive en arriver à dire que faire un truc en js est mieux qu'en html.
et puis si target n'existe plus, c'est parce que frame n'existe plus non plus, alors...
Marsh Posté le 22-08-2002 à 12:25:47
j'avoue que je lance un peu un SOS ici pour trouver LA fonction sortie du grenier, car je sais bien que c'est mal programmé, c'est du raffistolage incessant ce forum, mais j'ai vraiment pas le temps de le reprogrammer entièrement et proprement...
Marsh Posté le 22-08-2002 à 12:36:45
--greg-- a écrit a écrit : on dérive encore, mais franchement ça m'attriste qu'on doive en arriver à dire que faire un truc en js est mieux qu'en html. et puis si target n'existe plus, c'est parce que frame n'existe plus non plus, alors... |
Il y 2 cas à voir :
- target utilisé avec _blank pour faire apparaître une nouvelle fenêtre : là c'est très Mal parce que ce n'est pas au HTML de décider d'ouvir une nouvelle fenêtre. => utilisation du javascript, c'est logique.
- target pour contrôller les frames : on reste dans le document => aucune raison d'utiliser javascript. Mais target n'existe plus et le XHTML 2.0 (avec ses XFrames et le retour de target) n'est pas pour tout de suite. Donc si tu veux valider ton document avec du HTML strict ou du XHTML, il faut passer par du JS
Marsh Posté le 22-08-2002 à 12:38:38
hmmm
je suis pas tout à fait d'accord pour le 1er cas.
mais bon, souat.
Marsh Posté le 22-08-2002 à 13:10:32
--greg-- a écrit a écrit : hmmm je suis pas tout à fait d'accord pour le 1er cas. mais bon, souat. |
Rôle du HTML : présenter/structurer des données. Point.
Il faut désormais avoir à l'esprit que du HTML pourra être visualisé sur autre chose que le navigateur d'un ordinateur. Conclusion, il ne doit pas y avoir, dans le HMTL, de référence au moyen qui sera utilisé pour l'interpréter.
Mettre un target="_blank" c'est faire 2 erreurs :
- C'est supposer que le document sera visualisé dans un navigateur d'ordinateur.
- C'est mettre dans le HTML une information qui n'a rien à voir avec le fond (et même la forme).
Marsh Posté le 22-08-2002 à 13:12:29
perso j'aime pas quand un truc s'ouvre en _blank
pour le problème ici il faudrait avec du javascript voir si on est dans des frames (dans le onLoad de la page), et si c'est le cas sortir des frames via un window.parent.location = location, ou un truc du genre
Marsh Posté le 22-08-2002 à 13:17:31
gm_superstar : ok je m'incline
antp : ben moi pas trop non plus, en general, je clique droit comme un grand. mais quand c'est sur mon site, j'ai tendance à preferer que la fenetre de mon site reste ouvert chez le client (= je fais des _blank pour les liens externes)
Marsh Posté le 22-08-2002 à 14:02:50
je crois que j'ai trouvé une solution qui ne me fait pas modofier trop de code, je ne charge plus le bandeau d'upload d'image dans une frame mais plutot dans une nouvelle fenêtre (désolé mais je suis obligé de mettre un _blank)... mais bon c'est dommage car ça modifie dl'aspect du site...
Marsh Posté le 22-08-2002 à 11:28:12
salut, j'ai une page avec des frames imbriquées :
FRAME GAUCHE | FRAME DROITE
dans FRAME DROITE j'ai un nouveau découpage :
.Sous-FRAME HAUT
.Sous-Frame BAS
je veux sortir de Sous-FRAME HAUT pour revenir dans FRAME DROITE (c'est-à-dire éliminer l'affichage de Sous-FRAME BAS)
Or la fonction utilisée pour revenir est un include :
j'ai essayé d'ajouter un attribut Traget=FRAME DROITE ou Target=_parent à cette fonction mais cela ne fonctionne pas.
Qui pourrait m'aider? j'espère avoir été pas trop confus...
merci !
Message édité par flyjodel le 22-08-2002 à 11:32:28