Rechercher : dans
Par :

[JAVASCRIPT] pd d'envoi en POST

Dernière réponse le 20 jui 2007 à 11:04:45 Fab, le 17 jui 2007 à 16:59:35 
 Signaler ce message aux modérateurs

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.
Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « [JAVASCRIPT] pd d'envoi en POST » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[Outlook/ThunderBird/Incredimail] Envoi/Réception de mail VoirVous avez des problèmes d'envoi ou de réception de mail dans votre client de messagerie ? Cet article va vous aider à diagnostiquer le problème. 1. Introduction à la messagerie 2. Problèmes d'envoi de mail 3. Problèmes de réception de...
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - Introduction au langage Javascript VoirQu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des...

1

Alain42, le 17 jui 2007 à 20:21:32

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é"

Répondre à Alain42

2

A.Nonymous, le 18 jui 2007 à 01:10:53

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://www.prototypejs.org/ ) qui facilite l'utilisation d'Ajax, ce qui ressemble au but cherché.

Répondre à A.Nonymous

3

A.Nonymous, le 18 jui 2007 à 01:12:36

( 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 )

Répondre à A.Nonymous

4

Fab, le 18 jui 2007 à 11:40:47

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 :)

Répondre à Fab

5

Fab, le 20 jui 2007 à 10:46:16

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.

Répondre à Fab

6

 Fab, le 20 jui 2007 à 11:04:45
  • +6

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.

Répondre à Fab