Bonjour,

Je me sers de la méthode "xhr" pour afficher des éléments supplémentaires sur ma page suite au click sur un bouton (affichage d'un échéancier).
J'ai déjà réalisé avec succès une liste de villes qui se remplit après saisie du code postal. Je suis donc partie de cela pour réaliser mon échéancier.

J'ai besoin de transmettre 1 valeur par POST dans cet échéancier, à savoir le montant à payer.
Pour tester, j'ai commencé par cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<input class="cf_inputbox" maxlength="150" size="6" title="" id="val_montant" name="val_montant" type="text" value="<?php echo $rf["montant"]; ?>"/>
<input value="Echéancier" name="btn_echeancier" type="button" onClick="alert(val_montant.value)" />
-> le montant s'affiche bien.
Ensuite j'ai testé avec la fonction "xhr", sans passer la variable : en changeant l'action du bouton par : Et le code js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Action sur la saisie de code postal : recherche des villes ou zone de saisie pour étranger

function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}


function go(){
var xhr = 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){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('div_echeancier').innerHTML = leselect;
}
}

// Ici on va voir comment faire du post
xhr.open("POST","v_inc/ajaxEcheancier.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de la convention et le montant
sel = document.getElementById('val_montant');

//var Montant = sel.value;       <-- le problème est ici
//xhr.send("montant="+Montant);
xhr.send();
}
Et mon échéancier s'affiche, de même si je modifie le xhr.send :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
xhr.send("montant=1000,00");
Le problème est lors de la récupération de la valeur dans Montant...
et l'id val_montant est bien unique...