envoi de variables en POST dans un popup
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:
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:
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 ?