Bonsoir,
petit nouveau dans le coin, j'espère que mon message n'enfreint aucune règle du forum. Si tel était le cas, je m'en excuse d'avance platement.
Voici donc mon petit souci :
J'aimerais envoyer les variables d'un formulaire vers un fichier .php distant, qui n'accepte qu'une méthode "POST".
Le fichier php distant, lorsqu'on lui envoie les données du formulaire, fait un echo(); de ce que j'aimerais avoir dans un pop-up, qui n'est pour l'instant pas le cas.
Mon formulaire est bon. Si j'enlève le onclick="pop_it(leform)" du bouton de submit, le fichier distant php donne son résultat correctement... mais dans la fenêtre principale (beurk).
Voilà ce à quoi je suis arrivé jusque là :
----------------
le formulaire
----------------
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <form method="post" name="leform" id="leform" action="http://le.fichier.fr/distant/exemple.php" onSubmit="return valider()"> <fieldset> <textarea id="texte" name="texte" tabindex="1" accesskey="t" cols="100" rows="5">Collez votre texte ICI.</textarea> <input type="button" name="effaceur" value="Effacer" onClick="javascript:effacer()" tabindex="3" accesskey="e"/> <input name="submit" onclick="pop_it(leform)" type="button" accesskey="s" tabindex="2" value="Synthétiser"/> <input type="hidden" id="langue" name="langue" value="Français" checked="checked"/> <input type="hidden" id="voix" name="voix" value="HA_Benoît" checked="checked"/> <input type="hidden" id="volume" name="volume" value="10" checked="checked"/> <input type="hidden" id="debit" name="debit" value="1" checked="checked"/> </fieldset> </form>
----------------
scripts
----------------
__________________________________________
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 function effacer() { document.forms["kaliform"].texte.value=""; } function pop_it(the_form) { my_form = eval(the_form); window.open('./wait.php', "popup", "height=100,width=300,menubar='no',toolbar='no',location='no',status='no',scrollbars='no'"); my_form.target = "popup"; my_form.submit(); // on poste le formulaire } function valider() { if(document.forms["leform"].texte.value == "") { // Si la valeur du champ est vide, alert("Merci d'entrer un texte"); // on affiche un message, document.forms["leform"].texte.focus(); // on donne le focus au champ de texte, return false; // et on indique de ne pas envoyer le formulaire. } if(document.forms["leform"].texte.value.length > 2000) { //pas plus de 2000 caractères document.forms["leform"].texte.value = document.forms["leform"].texte.value.slice(0,499); } return true; }
wait.php est vide.
J'ai cru comprendre que le formule magique " my_form=eval(the_form); my_form.submit(); " ne fonctionne plus et qu'il faut utiliser un objet XmlHttpRequest (Ajax) - http://siddh.developpez.com/articles/ajax/ - mais il permet d'ouvrir dans la fenêtre principale, et pas dans un popup...
Une idée ?
Partager