Une seul variable post passe avec ajax ?

Résolu
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 - 18 oct. 2007 à 10:26
Tony0Ducrocq Messages postés 1 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 28 avril 2009 - 28 avril 2009 à 13:15
    Saluté...
j'ai un petit problème bizare avec une fonction ajax
en fait un seul des paramètres que je veux envoyer à mon script php passe apparament

si le mets une seul e de ces deux lignes au choix ça passe.
xhr.send("filtre="+filtre);
 xhr.send("ajax=1");
.. sinon j'ai une erreur dans firebug
uncaught exception:
[Exception... "Component returned failure code: 0x80004005
(NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005
(NS_ERROR_FAILURE)" location: "JS frame ::
http://*************/ajax.js
:: recherche_abonnements :: line 249" data: no]

function recherche_abonnements(filtre,url){
            alert (filtre);
                getXhr();
                // On défini ce qu'on va faire quand on aura la réponse
                xhr.onreadystatechange = function(){
                    // On ne fait quelque chose que si on a tout reçu et que le serveur est ok                    if(xhr.readyState 4 && xhr.status 200){
                        //alert(xhr.responseText);
                        //on place la réponse dans la listbox
                        document.getElementById('table_abo_souscrits').innerHTML = xhr.responseText;
                    }
                }
            //    xhr.open("GET","ajax_onglet.php",true);
                xhr.open("POST",url,true);
                // ne pas oublier ça pour le post
                xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
               
            //    xhr.send(null);
                xhr.send("filtre="+filtre);
                xhr.send("ajax=1");
            }

là je ne comprends pas :(:(:(

6 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
18 oct. 2007 à 10:32
Bonjour,
il faut que tu transmettes tes deux paramètres  ajax=1 et filtre=...?
as tu essayé :
    xhr.send ( "ajax=1&filtre="+filtre );

ça devrait mieux ( enfin, je pense ) fonctionner !

[o-_-o]
3
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
18 oct. 2007 à 10:48
    oui ça fonctionne mieux .... mais tu te rends compte si j'ai 40 variables à envoyer !!!
puis ce qui me rends fou de chez fou là c'est que j'ai déjà utilisé ce script dans une autre page !!!
tout pareil ! le même !
sauf l'url qui change en fonction du fichier auquel je veux faire passer le truc ...
et j'arrive à passer mes variables séparément !
je capte pas ... franchement j'aime pas ça les bricolages ....
enfin merci à toi quand même pour cette astuce mais j'aimerai vraiment comprendre pourquoi ça ne marche pas avec une méthode normale !
thx
@+
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
18 oct. 2007 à 10:53
t'es sur que ça fonctionne en utilisant plusieurs fois la méthode send ???
parce que la :http://www.xul.fr/xml-ajax.html ( si tu recherches send), tu trouveras :
L'argument de send est au format des paramètres de la méthode
POST. S'il y a plusieurs données, on les sépare par le symbole
"et" commercial:
....

Oups !

[o-_-o]
0
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
18 oct. 2007 à 10:59
    bon effectivement je viens de re regarder mes autres scripts et j'ai la même erreur !
mais franchement j'halucine qu'il n'y ait pas moyen de faire ça plus proprement qu'avec une URL encodée à la GET tout kkbeurk !
non ya pas un truc pour stocker tout ça tout bien avant de le passer au send ?
thx ! ++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
formule14 Messages postés 2 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 27 janvier 2008
27 janv. 2008 à 02:45
Bonsoir,

Je suis tout à fait d'accord avec toi caviar, ce n'est pas top top... D'ailleurs j'ai remarqué un problème :
Si l'une de variable, que l'on appellera titre, contient "test & test". Le et commercial est interprété comme séparateur et ça fait planté le reste.

Comment faire pour protéger les données en javascript ?? J'ai essayé encodeURI() mais sans succès. Auriez vous des suggestions ?

Merci d'avance
0
Tony0Ducrocq Messages postés 1 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 28 avril 2009
28 avril 2009 à 13:15
bon, je sais que le sujet est vieux, mais il m'a aider, donc je répond pour les gens dans le meme cas que moi

pour que ce soit plus propre construit une variable...

var texte="ajax=1&";
texte+="filtre="+filtre+"&";
xhr.send ( texte );

voila, c'est tous bête, tu n'aura pas une ligne enorme, mais plein de petite ligne
plus facile a débugé
0
Rejoignez-nous