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 :
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>
le bouton :
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 :
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);
}
Or si je selctionne toto et tata et que je clique sur le lien, je vois bien l'alerte s'afficher :
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