 Phoenix2001 07/03/06 | Bonjour,
petites question, a quoi sert le wait.php puisque la fenetre appellée est guests.php |
 CrazyCat 07/03/06 | Ainsi que je le dis dans la présentation, c'est une page d'attente.
Elle a un double intérêt:
1) on est sur que la popup est initialisée, elle a le focus
2) comme la popup est ouverte AVANT l'envoit du formulaire, ça évite d'ajouter un traitement dans la page guest.php pour savoir si les données ont été envoyées ou pas. |
 Naycko 18/03/06 | Merci, c'est de la grosse balle!!!! |
 pitchoune 02/05/06 | bonjour,
ton code m'intéresse beaucoup mais moi je souhaiterais pouvoir ouvrir 4 pages différentes (donc 4 boutons) en pop-up, c'est possible?
Merci  |
 CrazyCat 02/05/06 | il est très facile de modifier la fonction pop_it() pour lui transmettre un identifiant de page, il suffit après que chaque bouton envoit le bon identifiant, et que l'url de destination soit transformée comme tu le désire. |
 pitchoune 02/05/06 | excuse moi, mais j'y connais rien en javascript et j'ai du mal à appliquer ce que tu me dis.
comment es ce que je peux modifier l'url alors que je n'ai qu'un seul formulaire? |
 Bouillou 18/06/06 | Hello,
Pourquoi ne pas utiliser la methode "onSubmit" de la forme pour lancer l'exécution d'un script qui ouvre le popup de page d'attente?
C'est plus simple et plus joli non?
Bouillou |
 CrazyCat 18/06/06 | Si j'utilise cette méthode, c'est pour une raison très simple: le formulaire n'est soumis que si la popup est effectivement ouverte.
En fait, je me sers de ce script pour ouvrir des urls distantes, donc je préfère que ma popup soit proprement ouverte et disponible, ça me permet d'être sur que le serveur distant n'est pas mort. |
 scalp 19/06/06 | bonjour,
j'ai utilisé le code qui marche tres bien !!!
mon pb, parce qu'il y a tjs un probleme, est que je voudrais que les donnees de cette popup puisent etre retransmises par methode post sur la page qui l'a ouverte.
j'ai esayé plusieurs trucs mais au lieu de renvoyer les donnees sur la page "mère", il ouvre une nouvelle fenetre ...
voila mon code dans la popup :
fonction javascript {
my_form = eval(form)
my_form.target=window.opener.location;
my_form.submit();
window.opener.refresh();
window.close();
}
merci de votre aide !!! |
 CrazyCat 19/06/06 | je ferais plutôt quelque chose du genre:
fonction send(form) {
my_form = eval(form);
my_form.target=window.opener; // la target est l'opener, pas son emplacement
my_form.action = "./opener.php"; // là, c'est bien le fichier qui doit traiter les données
my_form.submit(); // on poste le formulaire
self.close(); // on peut fermer la fenêtre
} |
 scalp 19/06/06 | wow quelle rapidité !!! 
en fait form.target precise où va s'afficher le resultat ?
bon ben j'ai testé mais ca marche pas !!! 
ptet que ca marche que sous ie ??
|
 CrazyCat 19/06/06 | Dans ce cas, ce qu'il faut faire est simple:
dans ta fenêtre "principale", tu choisis un nom en faisant:
window.name = "nomdelafenetre";
et dans le popup, tu fais:
my_form.target = "nomdelafenetre"; |
 domJ 27/08/06 | Bravo pour cette trouvaille !
J'ai une petite question.
Comment faire pour que le pop-up reste toujours devant et ne s'ouvre pas à chaque changement et validation de données dans le formulaire ?
Ca serait nickel ! |
 domJ 27/08/06 | Ah ben j'ai trouvé ;-)
Enfin, je crois.
Bon ben en réponse à ma question (mais il y a sans doute plus simple), voici une petite modification du code ci-dessus qui permet de mettre la pop-up devant et de fermer l'ancienne quand on la rappelle avec de nouvelles données :
<script language="javascript" type="text/javascript">
var newWin = null;
function closeWin(){
if (newWin != null){
if(!newWin.closed)
newWin.close();
}
}
function pop_it(the_form) {
my_form = eval(the_form)
closeWin();
newWin = window.open("wait.php", "popup", 'top=10,left=10,resizable=no, location=no, width=200, height=100, menubar=no, status=no, scrollbars=no, menubar=no');
my_form.target = "popup";
my_form.submit();
newWin.focus();
}
</script>
En revanche si on désactive le javascript l'utilisateur ne voit rien se passer :-(. Je comprends pas bien ta phrase : "Si le javascript est désactivé dans le navigateur, il accompli son action normale dans la même fenêtre." En gros chez moi il se passe rien. |
 CrazyCat 28/08/06 | A mon avis, tu te complique la tâche pour pas grand chose.
En fait, tu veux qu'on puisse renvoyer le formulaire sans ouvrir une nouvelle popup si elle est déjà ouverte?
Il ne te sert à rien de la refermer:
<script>
function pop_it(the_form) {
my_form = eval(the_form);
if (newWin != null) {
newWin = window.open("wait.php", "popup", 'top=10,left=10,resizable=no, location=no, width=200, height=100, menubar=no, status=no, scrollbars=no, menubar=no');
}
my_form.target = "popup";
my_form.submit();
newWin.focus();
}
</script>
Concernant ta question sur le fonctionnement "sans javascript": si tu as bien mis le bon "action=" dans ta définition de forumlaire, le fonctionnement par défaut est d'envoyer les données dans la fenêtre courante. |
 galem3 12/09/06 | Bonjour tout le monde,
Je desire envoyer une page avec des informations sur 4 PC.
Merci par avance |
 asdphil 29/09/06 | Bravo pour ton script, je me prenais la tete depuis des heures avec ces passages de variables ! Th very best of !!! |
 fx 20/10/06 | Bravo pour ce code et cette fonction pop-it très très utile.
j'ai toutefois une contrainte supplémentaire : comment réaliser ce même envoi de post vers une pop up non pas avec un input type "button" mais avec un input type "image" (qui n'accepte apparemment pas l'attribut "onclick") ? |
 chris26 06/01/07 | Bonsoir !
J'ai utilisé ton script pour faire un bouton de preview (et donc prévisualiser les infos en pop up). Sauf que quand je décide que c'est ok et que j'appuie sur le bouton envoyer, la page qui me confirme l'envoi s'ouvre dans une nouvelle fenetre (pas une pop up)
J'ai tenté un petit script pour y remédier que j'appelle sur le bouton envoyer, pour bien lui dire d'ouvrir dans la fnetre où il se trouve, et ça ne marche toujours pas. A la place de document, j'ai aussi essayé parent, this, ...
function envoi(the_form) {
my_form2 = eval(the_form)
my_form2.target=document;
my_form2.submit();
}
Une idée ? |
 rebekos 09/01/07 | ca ne fonctionne pas avec firefox ?!
|
 springo 07/03/07 | Bonjour CrazyCat
Merci pour ce code tout simple, j'avais trouvé une astuce mais c'était compliqué.
Par contre, j'ai un problème ; avec IE7, ça marche très bien quand on utilise un bouton, la fenêtre s'ouvre.
Or, mon formulaire est composé d'une liste déroulante.
J'aimerais pourvoir remplacer le bouton par un simple "onchange" (ou onclick, ce sera pareil) dans ma balise select.
Le problème, c'est que dans ce cas, avec IE 7, le bloqueur de fenetres intempestives agit, alors qu'il ne le fait pas quand c'est un bouton :
http://www.duranton-consultants.fr/References1.htm
Donc mon client a râlé parce que ça ne marchait pas et qu'il n'avait pas vu le coup du bloqueur de fenetre. Il est pourtant sur internet tous les jours... je suppose donc qu'il y a des tas d'autres billes comme lui parmi ses clients à lui (et il n'utilise pas FF avec qui ça marche bien, et ses clients non plus). .
Donc j'ai mis un petit bouton, mais j'aimerais m'en passer, c'est plus élégant, un onChange !
Auriez-vous une astuce ?
Merci
Springo |
 pask2 26/03/07 | Si je puis me permettre un p'tit plus :
--> dans la balise <input type="button" onclick="pop_it(chatform);">
ecrire plutôt :
<input type="button" onclick="pop_it('chatform');return false;">
Bien utile dans mon cas pour éviter la double incrémentation des variables du POST dans un INPUT INTO. Peut-être aurais-je pu traiter l'affaire autrement, mais là c'est efficace et rapide.
En tous cas ton petit script me fut très utile.
|
 thieu 18/04/07 | Pour respecter le xhtml, l'attribut name devient id pour la balise form. Avec cette seule modification, il se trouve que la fonction pop_it ne fonctionne plus sous Firefox (remarque de rebekos?).
Je l'ai donc modifiée comme suit:
function popIt(idForm) {
my_form = document.forms[idForm]
window.open("./wait.php", "popup", "height=440,width=640,menubar='no',toolbar='no',location='no',status='no',scrollbars='no'");
my_form.target = "popup";
my_form.submit();
}
...avec comme code HTML pour le formulaire:
<form action="./guests.php" method="post" id="idForm">
<p>
Nickname : <input type="text" name="nick" maxlength="32" size="12" value="" /><br />
Password : <input type="password" name="pass" size="12" /><br />
<input type="button" onclick="pop_it(chatform);" value="Tchatter" /></p>
</form> |
 thieu 18/04/07 | Euh, pour le bouton de validation, j'me suis banane dans le copier/coller; ça donne ça:
<input type="button" onclick="pop_it('idFom');" value="Tchatter" |
 onyryc 19/04/07 | bonjour
Je reviens sur le probleme de scalp.
J'ai bien mis window.name = "nomdelafenetre"; dans la fenetre principale (on doit bien mettre ce bout de code dans la fonction pop_it ?).
Mais lorsque je ferme le popup il n'est pas fermé et affiche ce qu'aurais du afficher la page d'origine rafraichie... 
Merci  |
 calitom 29/06/07 | Bonjour,
Je voulais savoir comment mettre en forme la fenetre lorsque on utilise cette fonction:
function pop_it(form) {
my_form = eval(form);
my_form.target=window.opener;
my_form.action = "transfert.php";
my_form.submit();
}
Car je ne comprend pas bien où la fenetre est crée...
Je débute en javascript... |
 CrazyCat 29/06/07 | La page de destination est, dans ton cas, transfert.php. C'est elle qui sera la popup et que tu dois donc modifier. |
 calitom 29/06/07 | Merci j'ai réussi...
Voila comment j'ai fais:
function pop_it(the_form)
{
my_form = eval(the_form)
window.open("transfert.php", "popup", "top=300,left=400,height=400,width=480,menubar='no',toolbar='no',location='no',status='no',scrollbars='no'");
my_form.target = "popup";
my_form.action = "transfert.php";
my_form.submit();
} |
 rmed19 17/07/07 | il fonctionne bien avec firefox |
 mioux 27/07/07 | Il est normal que ce code ne fonctionne plus avec xhtml étant donné que xhtml n'autorise pas les target (et utiliser une fonction window.open() pour contourner ca ne résous pas le problème)
A moins d'utiliser le xhtml transitionnel (où l'attribut "name" est présent mais déprécié) ce code n'est donc pas valide en xhtml strict |
 TEAM6767 29/09/07 | J'aimerai bien me servir de ce code, qui est en effet, parfait.
Mais j'aimerai l'adapter à une connexion sur mon jeu.
Donc j'aimerai savoir si la vérification de la connexion ce fait plutôt dans la page wait.php ou guests.php???
Je me suis dis que je peux le mettre dans le wait.php et que s'il l'utilisateur n'a pas entré le bon code, la page guests.php ne s'ouvre pas. Mais je ne vois pas vraiment comment faire.
Comme mon jeu a besoin du javascript pour des messages important au joueur, ce serait aussi un moyen de vérifier l'acceptation du JS, pour qu'il ne puisse pas dire qu'il l'a pas vu.
Comme je ne gère pas encore bien javascript, mais plutôt PHP, je me demandais aussi si les valeurs de nick et de pass sont envoyés à wait.php???
Merci d'avance. |
 woodyfrance 28/01/08 | Bonjour à tous,
J'arrive un peu tard dans toute cette discussion mais je dois être un peu benet mais je suis incapable de faire fonctionner ce bout de code sous IE7. Le popup s'ouvre bien, la page que je souhaite afficher aussi, mais pas dans le popup mais dans une 2e fenêtre. J'ai essayé tout ce qui est proposé dans cette discussion mais rien ne change. D'autres idées ? Quelqu'un peut-il publier un code qui fonctionne sous IE7 ?
Merci |
 samax 20/04/08 | Bonjour,
Je veux bien essai ton code mais dans mon cas je ne vois pas comment faire passe mon paramétré ‘qte’ vers window.open au moyen de la méthode POST.
$SQL =mysql_query("SELECT * FROM produit WHERE quantite > 0");
$i=0; $max=4; $fiche=1;
while ($data = mysql_fetch_array($SQL)) {
<form name="formProd" method="post" action="AjoutPanier.php">
<SELECT name="qte">
$j=1;
while($j <= $data["quantite"]) {
?> <OPTION value=<?php echo $j;?> selected><?php echo $j;?></OPTION>
<?php $j++;
}
?> <input type = 'button' name = 'panier' value='Ajouter au Panier' onClick="javascript:ajoutpanier('<?php echo $data["ref"]; ?>')">
</SELECT>
</form>
// javascripte
<script language="JavaScript">
function ajoutpanier(ref) {
var wth = 520, hht = 460
var gau= (screen.width-wth)/2
var hau= (screen.height-hht)/2
window.open("AjoutPanier.php?ref="+ref, "","scrollbars=yes,width="+wth+",height=" +hht+",left="+gau+",top="+hau)
}
</script> |
 Cp77 03/06/08 | Merci, c'est exactement ce que je cherchais et ca fonctionne niquel. |
 nebil 21/07/08 | cela ne fonctionne pas quand le formulaire est dans une boucle
" while " ???? |
 nebil 21/07/08 | il faut sortir </form> de la boucle |
 nebil 23/07/08 | bonjour ,
a quoi sert le deuxieme argument qui se nome "popup" de la balise window.open
window.open("./wait.php", "popup" etc.....
merci
|
 The_SorroW 29/07/08 | Bonjour j'ai un soucis avec ce code.
Soit j'ai rien compris soit je n'ai pas su l'utiliser ou les deux lol.
Voila lorsque je clique sur mon bouton previsualiser j'ai ma pop up qui s'ouvre avec à l'intérieur les champs, input, textarea, ... de mon form ?? J'aurai juste voulu récupérer les données cependant.
Merci de votre aide. Je bloque et c'est urgent |
 jmtrager 30/07/08 | Je cherche à faire la même chose que scalp
je ne vois pas où on fait le
window.name="nomdelafenetre"
dans la fenetre principale.
Je cherche à ouvrir une fenetre et à la fin de l'excution de mon script,
je souhaire que ma fenetre principale affiche des information differente.
Comment la fenetre principale peut recevoir l'ordre de se rafraichir?
|
 xdiz 25/08/08 | Voici un valid xhtml, car l'attribut name dans la balise form est non valid !
<script language="javascript" type="text/javascript">
function pop_it(the_form) {
my_form = document.getElementById(the_form);
window.open("", "popup", "height=800,width=600,menubar='yes',toolbar='yes',location='no',status='no',scrollbars='no'");
my_form.target = "popup";
my_form.submit();
}
</script>
<!-- HTML -->
<form action="guests.php" method="post" id="chatform">
<p>
Nickname : <input type="text" name="nick" maxlength="32" size="12" value="" /><br />
Password : <input type="password" name="pass" size="12" /><br />
<input type="submit" onclick="pop_it(chatform);" value="Tchatter" /></p>
</form> |