AJAX : Pobleme avec la method POST
Résolu
camusdreck
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
camusdreck Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
camusdreck Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis un gros newbie en AJAX et j'ai quelques petit soucis avec la méthode POST
Voila mon code.
J'utilise un onclick pour lancer cette fonction.
Lorsque l'on clique le bouton firebug me renvoie ce message
Firebug needs to POST to the server to get this information for url:
http://localhost/www.XXXXXX.sit/admin/ajouter.php
This second POST can interfere with some sites. If you want to send the POST again, open a new tab in Firefox, use URL 'about:config', set boolean value 'extensions.firebug.allowDoublePost' to true
This value is reset every time you restart Firefox This problem will disappear when https://bugzilla.mozilla.org/show_bug.cgi?id=430155 is shipped.
Je suis un gros newbie en AJAX et j'ai quelques petit soucis avec la méthode POST
Voila mon code.
function modifierFiche(){ var xhr = testAjax(); //on définit ce que l'on aura a faire lorsque l'on aura la réponse xhr.onreadystatechange = function(){ if (xhr.readyState == 4 && xhr.status == 200) { document.write (xhr.responseText); } } var url = "ajouter.php"; xhr.open("POST", url , true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); var numero = document.getElementById('numero').value; var nom = document.getElementById('nom').value; var prenom = document.getElementById('prenom').value; var adresse = document.getElementById('adresse').value; var tel = document.getElementById('telephone').value; var perime = document.getElementById('perime').value; var mail = document.getElementById('mail').value; var pass = document.getElementById('pass').value; var data = "file="+ url +"&numero="+ numero +"&nom=" + nom + "&prenom=" + prenom + "&adresse=" + adresse + "&telephone="+ tel + "&perime="+ perime+ "&mail="+ mail + "&pass="+ pass; xhr.send(data); }
J'utilise un onclick pour lancer cette fonction.
Lorsque l'on clique le bouton firebug me renvoie ce message
Firebug needs to POST to the server to get this information for url:
http://localhost/www.XXXXXX.sit/admin/ajouter.php
This second POST can interfere with some sites. If you want to send the POST again, open a new tab in Firefox, use URL 'about:config', set boolean value 'extensions.firebug.allowDoublePost' to true
This value is reset every time you restart Firefox This problem will disappear when https://bugzilla.mozilla.org/show_bug.cgi?id=430155 is shipped.
A voir également:
- AJAX : Pobleme avec la method POST
- Problème ajax ✓ - Forum Webmastering
- Erreur ajax c est quoi ✓ - Forum PHP
- Easyphp ajax ✓ - Forum PHP
- Ajax ne fonctionne pas... ? - Forum Programmation
- Le technologie AJAX ✓ - Forum Réseaux sociaux
2 réponses
Bonjour,
a mon avis c'est pas bon au début de ta fonction qd tu crée ta request, essayes comme ça:
a mon avis c'est pas bon au début de ta fonction qd tu crée ta request, essayes comme ça:
function modifierFiche(){ var xhr = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... xhr = new XMLHttpRequest(); if (xhr.overrideMimeType) { xhr.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla } } else if (window.ActiveXObject) { // IE try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!xhr) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } //on définit ce que l'on aura a faire lorsque l'on aura la réponse xhr.onreadystatechange = function(){ if (xhr.readyState == 4 && xhr.status == 200) { document.write (xhr.responseText); } } var url = "ajouter.php"; xhr.open("POST", url , true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); var numero = document.getElementById('numero').value; var nom = document.getElementById('nom').value; var prenom = document.getElementById('prenom').value; var adresse = document.getElementById('adresse').value; var tel = document.getElementById('telephone').value; var perime = document.getElementById('perime').value; var mail = document.getElementById('mail').value; var pass = document.getElementById('pass').value; var data = "file="+ url +"&numero="+ numero +"&nom=" + nom + "&prenom=" + prenom + "&adresse=" + adresse + "&telephone="+ tel + "&perime="+ perime+ "&mail="+ mail + "&pass="+ pass; xhr.send(data); //pour voir si ça part: alert("Data envoye :"+data); }
Voici le code que j'ai mis pour déclaré xhr
function testAjax() {
var xhr = null;
if (window.XMLHttpRequest){// Firefox
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject){//Internet Explorer
try{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xhr= new ActiveXObject ("Microsoft.XMLHTTP");
}
}
else {
// XMLHttpRequest n'est pas supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHttpRequest ...");
xhr = false;
}
return xhr ;
}
**********************************
J'ai trouvé la reponse, en effet mon probleme ne venez pas de mon code ci-dessus mais plutot de mon "ajouter.php" .
En ajoutant :
$num = $_REQUEST['numero'];
$nom = $_REQUEST['nom'];
$prenom = $_REQUEST['prenom'];
$adr = $_REQUEST['adresse'];
$tel = $_REQUEST['telephone'];
$perime = $_REQUEST['perime'];
$mail = $_REQUEST['mail'];
$pass = $_REQUEST['pass'];
echo '<script> alert("' .$num .'")</script>';
Au lieu de :
$num = $_POST['numero'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adr = $_POST['adresse'];
$tel = $_POST['telephone'];
$perime = $_POST['perime'];
$mail = $_POST['mail'];
$pass = $_POST['pass'];
echo '<script> alert("' .$num .'")</script>';
******************************************
Merci pour ton aide, l'idée de l'alerte aprés le send() m'a beaucoup aidé.
function testAjax() {
var xhr = null;
if (window.XMLHttpRequest){// Firefox
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject){//Internet Explorer
try{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xhr= new ActiveXObject ("Microsoft.XMLHTTP");
}
}
else {
// XMLHttpRequest n'est pas supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHttpRequest ...");
xhr = false;
}
return xhr ;
}
**********************************
J'ai trouvé la reponse, en effet mon probleme ne venez pas de mon code ci-dessus mais plutot de mon "ajouter.php" .
En ajoutant :
$num = $_REQUEST['numero'];
$nom = $_REQUEST['nom'];
$prenom = $_REQUEST['prenom'];
$adr = $_REQUEST['adresse'];
$tel = $_REQUEST['telephone'];
$perime = $_REQUEST['perime'];
$mail = $_REQUEST['mail'];
$pass = $_REQUEST['pass'];
echo '<script> alert("' .$num .'")</script>';
Au lieu de :
$num = $_POST['numero'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adr = $_POST['adresse'];
$tel = $_POST['telephone'];
$perime = $_POST['perime'];
$mail = $_POST['mail'];
$pass = $_POST['pass'];
echo '<script> alert("' .$num .'")</script>';
******************************************
Merci pour ton aide, l'idée de l'alerte aprés le send() m'a beaucoup aidé.