Ajax envoie de 2 donnée en meme temps

Eléphant du PHP | 440 Messages

17 sept. 2008, 11:55

Bonjour à tous,

voici ma page php

Code : Tout sélectionner

<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <title>Service réclamation</title> <meta content="text/html; charset=iso-8859-15" http-equiv="Content-Type"/> <meta content="text/css" http-equiv="Content-Style-Type"/> <meta content="fr" http-equiv="Content-Language"/> <link media="screen" href="css/view_reclamation.css" type="text/css" rel="stylesheet"> </link> <link media="print" href="css/print.css" type="text/css" rel="stylesheet"> </link> <script type="text/javascript"> 1 2 window.onload=montre; 3function montre(id) { 4var d = document.getElementById(id); 5 for (var i = 1; i<=10; i++) { 6 if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} 7 } 8if (d) {d.style.display='block';} 9} 10 11function getXhr(){ 12 var xhr = null; 13 if(window.XMLHttpRequest) // Firefox et autres 14 xhr = new XMLHttpRequest(); 15 else if(window.ActiveXObject){ // Internet Explorer 16 try { 17 xhr = new ActiveXObject("Msxml2.XMLHTTP"); 18 } catch (e) { 19 xhr = new ActiveXObject("Microsoft.XMLHTTP"); 20 } 21 } 22 else { // XMLHttpRequest non supporté par le navigateur 23 alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 24 xhr = false; 25 } 26 return xhr; 27 } 28 29 /** 30 * Méthode qui sera appelée sur le click du bouton 31 */ 32 function motif(){ 33 var xhr = getXhr(); 34 35 // On défini ce qu'on va faire quand on aura la réponse 36 xhr.onreadystatechange = function(){ 37 // On ne fait quelque chose que si on a tout reçu et que le serveur est ok 38 if(xhr.readyState == 4 && xhr.status == 200){ 39 leselect = xhr.responseText; 40 // On se sert de innerHTML pour rajouter les options a la liste 41 document.getElementById('information').innerHTML = leselect; 42 } 43 } 44 45 // Ici on va voir comment faire du post 46 xhr.open("POST","ajax/ajax_reprendre_motif.php",true); 47 // ne pas oublier ça pour le post 48 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 49 // ne pas oublier de poster les arguments 50 // ici, l'id de l'auteur 51 var indexsite = document.getElementById('id_motif_reclamation') 52 idauteur = document.getElementById('id_motif_reclamation').value 53 idauteur2 = document.getElementById('id_reclamation').value 54 alert(idauteur); 55 alert(idauteur2); 56 xhr.send("idauteur="+idauteur); 57 xhr.send("idauteur2="+idauteur2); 58 } 59 </script> </head> <body> ...; ... td colspan="2"> <select id="id_motif_reclamation" onchange="motif()" name="id_motif_reclamation"> <option value="-1"> Choix</option> <option value="5">Autres</option> <option value="3">Livraison</option> <option value="4">Prix</option> <option value="1">Qualité</option> <option value="2">Quantité</option>
erreur firebug:

Code : Tout sélectionner

....loading.... Firebug's log limit has been reached. %S entries not shown. Preferences POST http://intranet/qualite/v0.2a/ajax/ajax_reprendre_motif.php http://intranet/qualite/v0.2a/ajax/ajax_reprendre_motif.php 67ms reprendr...amation=1 (ligne 65) uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://intranet/qualite/v0.2a/reprendre_reclamation.php?id_reclamation=1 :: motif :: line 66" data: no]
Je voudrait envoyé 2 donnée en même temps dans ma page.php en ajax. Quand j'envoie une donnée pas de problème (idhauteur), mais pas la deuxieme(idhauteur2). Comment je pourrait résoudre ce problème?

Merci d'avance pour votre aide.

guigui69

Mammouth du PHP | 1353 Messages

17 sept. 2008, 11:57

Bonjour,

Code : Tout sélectionner

xhr.send("idauteur="+idauteur+"&idauteur2="+idauteur2);
Cela devrait fonctionner ;)
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 440 Messages

17 sept. 2008, 14:32

Merci pour ton aide :D c'est bon ca fonctionne.

Question cette pour du javascript:

J'ai une page de mise a jour, problème c'est que sur la page en question il y a une une liste déroulante et qui en fonction du choix fait apparaitre (grâce au ajax) un nouveau tableau.

Le problème c'est qu'on chargement de la page, la liste déroulante sélectionné le bon nom dans la liste déroulante, mais ne fait pas apparaitre le tableau générer en ajax.

J'ai essaie onload, mais il se lance avant.

Comment réaliser l'affiche de mon tableau?

Merci

guigui69

Mammouth du PHP | 1353 Messages

17 sept. 2008, 14:37

Je ne sais pas trop la comme ca, faudrait voir le code...

L'idée je pense est la suivante : avoir sous ta liste déroulante un div avec par exemple l'id tableau.

Sur le onChange de ta liste tu lances le code en ajax et récupères les valeurs que tu veux, et de la tu modifie le code innerHTML de ton div, comme ca ca affiche dynamiquement les infos :

Code : Tout sélectionner

document.getElementById("tableau").innerHTML = "<table><tr><td>XXX</td></tr></table>";
Tell me and I forget. Teach me and I remember. Involve me and I learn.