Raffraichir une frame avec un JS à partir d'un popup

Raffraichir une frame avec un JS à partir d'un popup - HTML/CSS - Programmation

Marsh Posté le 25-09-2003 à 11:12:01    

Salut
 
Voila j'ai un popup pour que l'utilisateur puisse se logger et j'aimerais faire deux choses une fois que c fini.
 
1 - Raffraichir une frame de la page principale
Pour faire ca, je comptais utiliser qq chose comme ca :
parent.FRAME2.location.href = ....
Mais evidemment ca marche pas vu que le popup est dans une nouvelle fenetre et n'appartient pas à la frame...
Une solution ?
 
2 - Fermer le popup.
Ben oui c'est tout con mais :
echo "<script language='javascript'>window.close()</script>
ne marche pas...
 
 
Voila c tout merci

Reply

Marsh Posté le 25-09-2003 à 11:12:01   

Reply

Marsh Posté le 25-09-2003 à 11:25:19    

En cherchant un peu sur les sites de javascripts tu aurais pu trouver facilement :
 
1 - window.opener.location.href=
 
2 - window.close(); fonctionne très bien à condition de ne pas avoir d'erreur javascript avant.
 
Pour déboguer du javascript je te conseille Mozilla ou Netscape qui ont une console de débogage javascript


Message édité par Lord II le 25-09-2003 à 11:25:42

---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 25-09-2003 à 11:31:34    

En fait j'ai pas mal cherché sans jamais tombé sur window.opener...
 
window.opener.location.href pointe juste vers la fenetre qui a ouvert le popup non ? Je fais comment pour accéder à une frame ?
 
C'est vraiment bizarre ce window.close(); qui marche pas...Sans aucune erreur de script...

Reply

Marsh Posté le 25-09-2003 à 11:34:56    

Gooopil a écrit :

Salut
 
Voila j'ai un popup pour que l'utilisateur puisse se logger et j'aimerais faire deux choses une fois que c fini.
 
1 - Raffraichir une frame de la page principale
Pour faire ca, je comptais utiliser qq chose comme ca :
parent.FRAME2.location.href = ....
Mais evidemment ca marche pas vu que le popup est dans une nouvelle fenetre et n'appartient pas à la frame...
Une solution ?
 
2 - Fermer le popup.
Ben oui c'est tout con mais :
echo "<script language='javascript'>window.close()</script>
ne marche pas...
 
 
Voila c tout merci
 


 
Faire une autentification avec un popup, c'est mal...  :D

Reply

Marsh Posté le 25-09-2003 à 11:35:47    

Faut me dire pourquoi...Ca sert à rien de dire c mal si tu dis pas pourquoi...On est pas à l'armée ici ;)

Reply

Marsh Posté le 25-09-2003 à 11:38:28    

Gooopil a écrit :

Faut me dire pourquoi...Ca sert à rien de dire c mal si tu dis pas pourquoi...On est pas à l'armée ici ;)


 
Pour une raison toute simple et évidente (c'est pour cela que je n'avais pas expliqué  :D ).
 
Utiliser du JS pour une partie vitale du fonctionnement d'un site est toujours une mauvaise idée.
 
Avant de savoir si l'usage du JS est recommandé, pose toi une question, une seule :
 
Est-ce que cela empêche le site de fonctionner si le JS est désactivé ? Si la réponse est oui, alors le JS est contre-indiqué.

Reply

Marsh Posté le 25-09-2003 à 13:28:55    

Fait : 85% des internautes ont js>1.2 activé ds leur naviguateur.
Question : restreindre le JS à des fonctions marginales ne revient-il pas à se rendre la tache plus difficile voir à rendre certaines choses impossible ? Et tout cela pour le bienfait des 15% de marginaux quirefusent d'activer JS...
 
Certes j'admet que certains n'ont pas le choix (imposé par leur boite ou autre). Mais les autres ?  
 
Dans ce cas, je veux simplement pouvoir raffraichir ou changer la source d'une frame...A part le JS, y'a pas vraiment de solutions à ce qu'il me semble...Et cette redirection, je vais fatalament l'utiliser à un moment ou un autre. C'est une fonction assez utile...
 
Alors je sais pas...Je me préoccupe des chieurs qui ont pas JS ou alors j'utilise JS pour pouvoir présenter mon site comme je le veux...Certes, au lieu de mettre un popup, il me suffirait de mettre le log au milieu des frames, mais comme je l'ai dis, je vais avoir besoin à un moment ou un autre de changer le contenu d'une frame sans que l'utilisateur clic sur un lien...
 
 
Pour finir, même si j'ai pas pris ma décision, j'aimerais savoir :
window.opener.location.href pointe juste vers la fenetre qui a ouvert le popup non ? Je fais comment pour accéder à une frame ?
 

Reply

Marsh Posté le 25-09-2003 à 13:39:13    

Gooopil a écrit :

Fait : 85% des internautes ont js>1.2 activé ds leur naviguateur.
Question : restreindre le JS à des fonctions marginales ne revient-il pas à se rendre la tache plus difficile voir à rendre certaines choses impossible ? Et tout cela pour le bienfait des 15% de marginaux quirefusent d'activer JS...


 
Si tu arrives à me trouver qqc d'utile et de pas faisable avec du php, j'accepterai ton argument. Dans le cas contraire non.
 

Citation :

Dans ce cas, je veux simplement pouvoir raffraichir ou changer la source d'une frame...A part le JS, y'a pas vraiment de solutions à ce qu'il me semble...Et cette redirection, je vais fatalament l'utiliser à un moment ou un autre. C'est une fonction assez utile...


 
Les redirections serveur, c'est pas pour les chiens. Et il est évidemment possible de se passer de JS pour les redirections. En fait, la seule utilité des redirections JS, c'est de permettre à des neebs de faire des sites persos hébergés chez des hébergeurs sans php.  
Il y a aussi les redirections non indispensables qui peuvent être réalisées en JS.
 
 

Citation :

Alors je sais pas...Je me préoccupe des chieurs qui ont pas JS ou alors j'utilise JS pour pouvoir présenter mon site comme je le veux...Certes, au lieu de mettre un popup, il me suffirait de mettre le log au milieu des frames, mais comme je l'ai dis, je vais avoir besoin à un moment ou un autre de changer le contenu d'une frame sans que l'utilisateur clic sur un lien...


 
Déjà :  
 
1) Pourquoi des frames ? Quelle utilité de nos jours où le php est présent partout.
2) Pourquoi un popup pour une autentification ? Quel avantage ? Argument ?
3) Non, je ne vois pas pourquoi à un moment donné ou à un autre tu aurais besoine de changer le contenu d'une frame (qui ne devrait déjà pas exister) sans que l'utilisateur clic sur un lien.
 


Message édité par Hermes le Messager le 25-09-2003 à 13:44:58
Reply

Marsh Posté le 25-09-2003 à 13:57:48    

1-Pourquoi des frames ??
Tu me conseillerais donc d'enlever les frames et d'afficher à chaque fois l'entete et le pied de page ? Les frames c'est pratique ca évite de tout recharger quand tu veux changer juste une partie de ta page. Mais bon si tu me dis que c'est vraiment mieux sans...La je met le futur de mon site entre tes mains ;) Si tu me dis mets pas de frame, je mettrais pas de frame...
 
2-Le popup  
C'était une idée comme ca...Mais bon apparemment ca plait pas à bcp de gens donc je crois que je vais laisser tomber le popup...
 
3-Redirection
Situation : l'user veut se logger.
Je l'envoie sur une page log.php
Il clic sur Ok après avoir entrer ses infos
Je l'envoie sur log.php avec un petit parametre histoire de vérifier les infos
Et la ? je veux pas lui mettre un lien "revenir à la page xxx.php"
J'aimerais qu'il se retrouve directement sur cette page xxx.php.
 
Solution ?
 
Au fait c'est quoi une redirection serveur ?


Message édité par gooopil le 25-09-2003 à 13:58:53
Reply

Marsh Posté le 25-09-2003 à 14:03:29    

Gooopil a écrit :

1-Pourquoi des frames ??
Tu me conseillerais donc d'enlever les frames et d'afficher à chaque fois l'entete et le pied de page ? Les frames c'est pratique ca évite de tout recharger quand tu veux changer juste une partie de ta page. Mais bon si tu me dis que c'est vraiment mieux sans...La je met le futur de mon site entre tes mains ;) Si tu me dis mets pas de frame, je mettrais pas de frame...


 
Les navigateurs vont garder en cache ce qui ne change pas d'une page à l'autre, donc les images, les css (surtout avec une feuille de style externe) etc... Bref, cela ne va rien changer. Donc, sans hésitation, oui, tu peux enlever les frames si tu as accès au php (ou autre langage serveur) et que tu sais comment faire des includes. ;)
 

Citation :

2-Le popup  
C'était une idée comme ca...Mais bon apparemment ca plait pas à bcp de gens donc je crois que je vais laisser tomber le popup...


 
Tu feras bien.  :jap:  Je ne dis pas qu'il ne faut jamais utiliser le JS, je dis qu'il faut réserver son usage pour les choses non vitales dans un site. ;)
 
 

Citation :

3-Redirection
Situation : l'user veut se logger.
Je l'envoie sur une page log.php
Il clic sur Ok après avoir entrer ses infos
Je l'envoie sur log.php avec un petit parametre histoire de vérifier les infos
Et la ? je veux pas lui mettre un lien "revenir à la page xxx.php"
J'aimerais qu'il se retrouve directement sur cette page xxx.php.
 
Solution ?


 
Pas de problème, tu as deux solutions :
 
1) Soit tu fais un header pour rediriger ton visiteur vers la page index.php (ou une autre page, comme tu veux) après avoir traité les infos.
 
2) Soit tu fais une redirection HTTP (avec un META) après avoir traité les infos.
 
 :)  
 
Je suis à ta disposition pour t'aider quand tu ne comprendras pas qqc. Où en es-tu actuellement avec le PHP. Tu connais un peu ?
 
 
 

Reply

Marsh Posté le 25-09-2003 à 14:03:29   

Reply

Marsh Posté le 25-09-2003 à 14:10:51    

Ben le site c'est effectivement du php...J'ai un niveau disons...très moyen :)
 
Le header tu ne peux pas l'envoyer si tu as déjà envoyé du HTML non ?
 
C'est comme ca le META ?  
<META http-EQUIV='Refresh' CONTENT='0; url=machin.php'>
 
Pdt que je te tiens, vu que tu m'as l'air un poil plus pointu que moi ;)
je fais echo "<meta ..= 'Refresh'...
ou      echo "<meta ..= \"Refresh\"...    ?
 
et y'a des précautions particulieres à prendre avec les include ou pas ?


Message édité par gooopil le 25-09-2003 à 14:20:45
Reply

Marsh Posté le 25-09-2003 à 14:33:10    

Gooopil a écrit :

Ben le site c'est effectivement du php...J'ai un niveau disons...très moyen :)
 
Le header tu ne peux pas l'envoyer si tu as déjà envoyé du HTML non ?


 
En effet. Mais à quoi bon de toutes manières ?  :)  C'est une erreur classique qu'on fait tous. On cherche la manière d'écrire qqc avec du HTML avant une redirection, mais c'est stupide et inutile. (ça produirait un code HTML pourri avec plusieurs balises <HTML> dedant  ;) ).
Tu fais les claculs en PHP que tu veux avant, des vérifications etc... Et tu envoies ton header ou ta redirection HTTP avec un META.
 

Citation :

C'est comme ca le META ?  
<META http-EQUIV='Refresh' CONTENT='0; url=machin.php'>


 
Oui, c'est comme ça. enfin presque, il manque deux ' (un à CONTENT et l'autre pour url) Si tu veux qu'on ait le temps de lire qqc (comme : "votre message a bien été envoyé" ), tu rêgles le CONTENT à 2 secondes (c'est ce que je fais).
 

Citation :

Pdt que je te tiens, vu que tu m'as l'air un poil plus pointu que moi ;)
je fais echo "<meta ..= 'Refresh'...
ou      echo "<meta ..= \"Refresh\"...    ?


 
ça revient strictement au même. A toi de voir. ;)
 
 

Citation :

et y'a des précautions particulieres à prendre avec les include ou pas ?


 
Quelques précautions de sécurité évidemment, mais chaque chose en son temps, tu ne peux pas tout apprendre d'un coup, et quand tu auras fait ton site, tu pourras te concentrer pour le sécuriser.
 

Reply

Marsh Posté le 25-09-2003 à 14:36:21    

Bien bien :)
 
Merci bcp c'est tout très clair. Je peux me remettre au boulot correctement maintenant :D
 

Reply

Marsh Posté le 25-09-2003 à 14:38:39    

Gooopil a écrit :

Bien bien :)
 
Merci bcp c'est tout très clair. Je peux me remettre au boulot correctement maintenant :D
 
 


 
Je reste à ta disposition pour tes futures questions qui ne manqueront pas d'arriver.  :jap:

Reply

Marsh Posté le 25-09-2003 à 14:41:17    

Héhé

Reply

Marsh Posté le 25-09-2003 à 15:26:54    

Me revoila déjà :)
 
Note. Some user agents support the use of META to refresh the current page after a specified number of seconds, with the option of replacing it by a different URI. Authors should not use this technique to forward users to different pages, as this makes the page inaccessible to some users. Instead, automatic page forwarding should be done using server-side redirects.
 
Ca vient de w3.org...
 
A priori les meta refresh faut pas donc...
C'est quoi une redirection coté serveur ? comment tu mets en place ca ?

Reply

Marsh Posté le 25-09-2003 à 17:16:05    

Alors, je moment est venu de te faire télécharger une petite doc qui te permettra à tout moment d'avoir le détail des fonctions comme ceci :
 
http://de2.php.net/manual/fr/function.header.php
 
 
Voici l'adresse ou la télécharger au format .chm (très pratique pour l'intégrer à ton éditeur favoris pour le lancer avec une touche de fonction par exemple comme F12) :
 
http://de2.php.net/get/php_manual_ [...] net/mirror
 
Voilà...  :)  
 
 
 

Reply

Marsh Posté le 25-09-2003 à 18:01:41    

Il est très bien ce garçon :)
 
En fait je connaissais header() mais je savais pas que ca s'appelait comme ca...


Message édité par gooopil le 25-09-2003 à 18:02:31
Reply

Marsh Posté le 25-09-2003 à 18:15:16    

Gooopil a écrit :

Il est très bien ce garçon :)
 
En fait je connaissais header() mais je savais pas que ca s'appelait comme ca...


 
J'aide tous ceux qui font des efforts et mettent un peu de bonne volonté, c'est tout.  :ange:  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed