OVH Cloud OVH Cloud

xmlhttprequest

17 réponses
Avatar
J.Trotoux
Bonjour,
je découvre xmlhttprequest et me trouve face à un souci.

return !sendData(
'GET',
'insertion-xml.php',
'xmlhttp=1&'+
'login='+document.getElementById('txtLogin').value+
'&'+
'password='+document.getElementById('txtPassword').value);

je voudrais pouvoir envoyer ici en une seule ligne l'ensemble des
variables POST. (quelques soient leurs intitulés). Y a t-il une
possibilité en javascript?

L'idée est d'ensuite pouvoir récupérer ce tableau POST en php et de
pouvoir insérer mon objet du style

$O = monObjet();
$O->Insert($POST);

Sauriez-vous me guider?
Merci
Julien

10 réponses

1 2
Avatar
Damien Hardy
Bonjour,
je découvre xmlhttprequest et me trouve face à un souci.

return !sendData(
'GET',
'insertion-xml.php',
'xmlhttp=1&'+
'login='+document.getElementById('txtLogin').value+
'&'+
'password='+document.getElementById('txtPassword').value);

je voudrais pouvoir envoyer ici en une seule ligne l'ensemble des
variables POST. (quelques soient leurs intitulés). Y a t-il une
possibilité en javascript?

L'idée est d'ensuite pouvoir récupérer ce tableau POST en php et de
pouvoir insérer mon objet du style

$O = monObjet();
$O->Insert($POST);

Sauriez-vous me guider?
Merci
Julien



on peut lire sur http://openweb.eu.org/articles/objet_xmlhttprequest/

Une requête de type POST

/* Création de l'objet : */
var xmlhttp = getHTTPObject();
/* Préparation d'une requête asynchrone de type POST : */
xmlhttp.open("POST", "/test.php",true);
/* Effectue la requête en envoyant les données : */
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlhttp.send("var1=valeur1&var2=valeur2");

donc faire un peu pareil ...

Dam

Avatar
J.Trotoux

Bonjour,
je découvre xmlhttprequest et me trouve face à un souci.

return !sendData(
'GET',
'insertion-xml.php',
'xmlhttp=1&'+
'login='+document.getElementById('txtLogin').value+
'&'+
'password='+document.getElementById('txtPassword').value);

je voudrais pouvoir envoyer ici en une seule ligne l'ensemble des
variables POST. (quelques soient leurs intitulés). Y a t-il une
possibilité en javascript?

L'idée est d'ensuite pouvoir récupérer ce tableau POST en php et de
pouvoir insérer mon objet du style

$O = monObjet();
$O->Insert($POST);

Sauriez-vous me guider?
Merci
Julien




on peut lire sur http://openweb.eu.org/articles/objet_xmlhttprequest/

Une requête de type POST

/* Création de l'objet : */
var xmlhttp = getHTTPObject();
/* Préparation d'une requête asynchrone de type POST : */
xmlhttp.open("POST", "/test.php",true);
/* Effectue la requête en envoyant les données : */
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlhttp.send("var1=valeur1&var2=valeur2");

donc faire un peu pareil ...

Dam
sauf que là je dois lister mes variables dans mon .js

xmlhttp.send("var1=valeur1&var2=valeur2");
Or je voudrais automatiser mon js quelque soit mon formulaire...



Avatar
Pierre Goiffon
J.Trotoux wrote:
sauf que là je dois lister mes variables dans mon .js
xmlhttp.send("var1=valeur1&var2=valeur2");
Or je voudrais automatiser mon js quelque soit mon formulaire...



Parcourir avec le DOM tous les champs du formulaire concerné et
récupérer les paires non / valeur, non ?


Avatar
Damien Hardy

sauf que là je dois lister mes variables dans mon .js
xmlhttp.send("var1=valeur1&var2=valeur2");
Or je voudrais automatiser mon js quelque soit mon formulaire...



var inputs = document.getElementsByTagName('input');
var i ;
var str = "";
for (i = 0; i<inputs.length; i++) {
if (str != "") str += "&";
str += inputs[i].getAttribute('name') + "=" + inputs[i].value;
}

xmlhttp.send(str);

doit répondre (a peu pret) à ton probleme

limitations connues : 1 seul formulaire par page, les checkboxs et les radios ne sont pas geré ...

Dam


Avatar
J.Trotoux
var inputs = document.getElementsByTagName('input');
var i ;
var str = "";
for (i = 0; i<inputs.length; i++) {
if (str != "") str += "&";
str += inputs[i].getAttribute('name') + "=" + inputs[i].value;
}

xmlhttp.send(str);

doit répondre (a peu pret) à ton probleme

limitations connues : 1 seul formulaire par page, les checkboxs et les
radios ne sont pas geré ...


Dam



Merci dam.
les limitations sont contraignantes...mais avec les input et les select ca
devrait le faire (une checkox/ un radio ne sont ni plus ni moins qu'un
select avec option 1 et 0, en multiple!)
Je regarde ca demain.


Avez vous vu un exemple de moteur de recherche créé avec les xmlhttprequest,
j'ai vu un exemple cet aprèm ! terrible, pas besoin de recharger!
(j'envoie le lien demain)

Julien

Avatar
Damien Hardy

Merci dam.
les limitations sont contraignantes...mais avec les input et les select ca
devrait le faire (une checkox/ un radio ne sont ni plus ni moins qu'un
select avec option 1 et 0, en multiple!)
Je regarde ca demain.


Avez vous vu un exemple de moteur de recherche créé avec les xmlhttprequest,
j'ai vu un exemple cet aprèm ! terrible, pas besoin de recharger!
(j'envoie le lien demain)

Julien




tu parles de google suggest ? http://www.google.com/webhp?complete=1&hl=en


pour les checkbox et les radio c'est assez simple :

var inputs = document.getElementsByTagName('input');
var i ;
var str = "";
for (i = 0; i<inputs.length; i++) {
if (str != "") str += "&";
switch (inputs[i].getAttribute('type')) {
case "radio" :
case "checkbox" : if (inputs[i].checked) str += inputs[i].getAttribute('name') + "=" + inputs[i].value; break;
default : str += inputs[i].getAttribute('name') + "=" + inputs[i].value; break;
}
}
xmlhttp.send(str);

Avatar
J.Trotoux
tu parles de google suggest ? http://www.google.com/webhp?complete=1&hl=en


non, sur un site perso avec la google api. les résultats s'affichent en
temps réèl. sympa! je le fai demain!

pour les checkbox et les radio c'est assez simple :

var inputs = document.getElementsByTagName('input');
var i ;
var str = "";
for (i = 0; i<inputs.length; i++) {
if (str != "") str += "&";
switch (inputs[i].getAttribute('type')) {
case "radio" :
case "checkbox" : if (inputs[i].checked) str + inputs[i].getAttribute('name') + "=" + inputs[i].value; break;
default : str += inputs[i].getAttribute('name') + "=" + inputs[i].value;
break;

}
}
xmlhttp.send(str);



2 messages plus haut tu me mettais que ca ne le gérait pas ?!
C'est cool alors.

c'est tout de même dommage que javascript puisse pas plus simplement
transférer un tableau POST à une page php...mais bon! ça pousse à réfléchir!

Merci Dam !

Avatar
ASM
J.Trotoux wrote:
tu parles de google suggest ? http://www.google.com/webhp?complete=1&hl=en



non, sur un site perso avec la google api. les résultats s'affichent en
temps réèl. sympa! je le fai demain!


Ben ... chez Google aussi çà s'affiche en temps réel ... !
la seule différence est que tu restes sur ton site au lieu d'aller chez
Google.

M'enfin ... il y a différentes méthodes pour interroger Google
et paraître rester sur son site.


--
Stephane Moriaux et son [moins] vieux Mac


Avatar
J.Trotoux
Ben ... chez Google aussi çà s'affiche en temps réel ... !
la seule différence est que tu restes sur ton site au lieu d'aller chez
Google.


je me suis ma exprimé sans doute : l'idée est d'aficher les résultats sans
valider un formulaire et qu"il n'y ait de requete "visible". on reste sur la
meme page, comme si c'etait du flash.tout se passe en arrière plan, avec
xmlhttprequest. j'envoie l'url du boulot.

Julien

Avatar
Damien Hardy
tu parles de google suggest ? http://www.google.com/webhp?complete=1&hl=en


non, sur un site perso avec la google api. les résultats s'affichent en
temps réèl. sympa! je le fai demain!


tu crois qu'il les fait comment les propositions ?
(le faux select qui descend pendant que tu frappes ta recherche ...)

2 messages plus haut tu me mettais que ca ne le gérait pas ?!
C'est cool alors.


2 message plus haut ce n'etait pas tout à fait le meme code ...
Et j'ai pour habitude lorsque je "release" du code de fournir aussi les limitations
déjà connues pour ne pas laisser de mauvaise surprises.
(ce n'etait bien sur pas des limitation dues à javascript mais a ma faineantise ;)

Dam


1 2