Bonsoir a tous,
Je traite des centaines de fonctions ajax, et la je ne comprends pas ou se situe le probleme, a part peut etre la gestion json.
Je m'explique, j'ai un formulaire avec des checkbox, et une fonction qui permet de selectionner plusieurs et ensuite je clique sur un lien qui declence la fonction envoyer la valeur des checkbox via ajax.
Mes checkbox :
le bouton :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <input type="checkbox" name="choix[]" class="choix" value="toto"></td> <input type="checkbox" name="choix[]" class="choix" value="titi"></td> <input type="checkbox" name="choix[]" class="choix" value="tata"></td>
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <a href="javascript:;" onclick="relance_sms(\'.choix\',\''ceci est un message de test\'');success();">ceci est un message de test</a>
la fonction relance_sms est la suivante :
Or si je selctionne toto et tata et que je clique sur le lien, je vois bien l'alerte s'afficher :
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 function relance_sms(id_class,sms) { var elts = document.querySelectorAll(id_class); var i = 0; var array_val = []; // array elts.forEach(function(id) { if (id.checked) { array_val[i] = id.value; i++; } }); var liste_val = (array_val.length > 0) ? JSON.stringify(array_val) : ""; // liste au format JSON var xhr_object = null; if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else {alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");return;} xhr_object.open("GET", "relance_sms.php?liste="+liste_val+"&sms="+sms, true); xhr_object.onreadystatechange = function() {if(xhr_object.readyState == 4) {}} xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr_object.send(null); // alert ("relance_sms.php?liste="+liste_val+"&sms="+sms); }
relance_sms.php?liste=["toto","tata"]&sms=ceci est un message de test
en réalité il s'emblerait que la fonction ne l'appelle pas, puisque derriere le fichier relance_sms ne s'execute pas.
Par contre si je colle l'url : relance_sms.php?liste=["toto","tata"]&sms=ceci est un message de test dans la barre d'url, la le fichier relance_sms s'execute.
Conclusion, il semblerait que mon code AJAX ne veuille pas executer l'url
Merci pour toute l'aide que vous pourrez m'apporte. Je precise que j'ai essayé aussi avec POST a la place de GET.
Bonne soirée.
Olivier
Partager