[JAVASCRIPT] pd d'envoi en POST

Fermé
Fab - 17 juil. 2007 à 16:59
 Grace-NGUIE - 10 juin 2011 à 16:23
Bonjour,

j'ai un souci avec javascript d'un niveau assez élevé je pense, c'est pourquoi j'ai besoin de vos lumières.
Voilà la situation :

sur ma page j'ai un formulaire classique, avec plusieurs input et textarea, qui permet à l'utilisateur de rédiger des articles.
La particularité est qu'il y a aussi une iframe qui permet de voir en temps réel l'aperçu de l'article, avant que le formulaire soit validé donc. Pour ça j'ai mis un évènement onKeyUp sur mon textarea (oui, seul le contenu du textarea apparait ensuite dans l'iframe) qui lance une fonction javascript qui ressemble grosso modo à ceci :

chaine=document.getElementById("mon_textarea").value;
window.frames['ma_frame'].location.href='page_aperçu.php?texte='+chaine;

Ensuite dans page_aperçu.php (la page de l'iframe) je fais un echo $_GET['texte']. Tout ceci marche parfaitement jusque là.

Mon problème est le suivant :
la méthode GET fonctionne tant que mon article ne dépasse pas les 2000 caractères (sous IE, je crois que j'arrive à plus de 6000 avec Firefox) mais au-delà ça ne marche plus. C'est pour cela que je cherche un moyen d'utiliser la méthode POST pour ne plus avoir de restrictions.

Après m'être pris la tête dessus et fouiller le net pendant des heures je prends tous les conseils et suggestions. Merci.
A voir également:

4 réponses

La "fonction" GET passe les parametres via l'URL il est normal que ce soit limité !

et en plus tu t'exposes à des pb avec les caractères spéciaux.

Utilises plutôt la methode $_POST qui passe les paramètres en "caché"
0
Le problème est justement comment faire pour envoyer des valeurs par le post !

Je te suggère de prêter ton attention au composant "Ajax" de la bibliothèque Prototype ( http://prototypejs.org/ ) qui facilite l'utilisation d'Ajax, ce qui ressemble au but cherché.
0
( Juste pour précision : il est possible de faire du simili-Ajax sans la librairie Prototype, avec par exemple une autre librairie Javascript ou par la base, avec l'objet XmlHttpRequest )
0
J'ai bien cherché du côté d'AJAX et son XmlHttpRequest, et même là je me retrouve limité.
Si on peut choisir la méthode GET ou POST c'est seulement pour la réponse du serveur (ma_requete.open("POST",url,true); ), mais quand je fais ma requête le problème reste le même (ma_requete.send("variable1="+var1+"&variable2"+var2+etc...); ).

Je pense que c'est là la limite de javascript...
Pour ma part je vais contourner le problème en revoyant mon interface.

Merci pour vos réponses en tout cas :)
0
J'ai peut être trouvé un moyen de résoudre ce problème mais pour l'instant ça ne marche que sous IE :

avant j'avais ceci dans ma fonction :
chaine=document.getElementById("mon_textarea").value;
window.frames['ma_frame'].location.href='page_aperçu.php?texte='+chaine;

maintenant ça marche avec ça :
document.getElementById("formulaire").method='POST';
document.getElementById("formulaire").target='ma_frame';
document.getElementById("formulaire").action='page_apercu.php';
document.getElementById("formulaire").submit();

Il me reste plus qu'à trouver pourquoi ça ne marche pas sous Firefox... si vous avez des idées n'hésitez pas. Merci.
-1
Ca y est c'est bon !
Ma manière de désigner mon formulaire ne passait pas sous Firefox. Voici la bonne méthode :

document.forms["formulaire"].method='POST';
document.forms["formulaire"].target='ma_frame';
document.forms["formulaire"].action='page_apercu.php';
document.forms["formulaire"].submit();


En espérant que cela puisse servir à quelqu'un.
0
Grace-NGUIE
10 juin 2011 à 16:23
Merci beaucoup pour cette syntaxe!
ça m'aide vraiment!
0