Une seul variable post passe avec ajax ? [Résolu]

Signaler
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
-
Messages postés
1
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
28 avril 2009
-
    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

Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
4
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]
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
    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
@+
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
4
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]
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
    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 ! ++
Messages postés
2
Date d'inscription
mardi 14 novembre 2000
Statut
Membre
Dernière intervention
27 janvier 2008

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
Messages postés
1
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
28 avril 2009

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é