Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/03/2011, 13h01   #1
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
Par défaut Un httpRequest dans une boucle

Bonjour à tous,

J'ai un select multiple qui affiche une liste d'items avec un ID comme value des options. Il y a, sur le select, un évènement onclick qui envoie l'id sélectionné à Ajax lequel le passe à PHP qui sélectionne les données correspondant à l'ID dans la BDD et les entre en session PHP sous forme de ligne indicées. Puis quand le httpRequest revient OK, je recharge la page pour afficher les lignes contenues dans la session.
Ok c'est classique est ça roule.

Mais ce que je voudrais faire, c'est pouvoir permettre au user de sélectionner plusieurs items, et donc, via Ajax, afficher toutes les lignes d'un coup.

Voici la fonction qui charge la ligne selon l'ID :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
function charge_ligne(id){
 
var xhr = getXhr('text');
xhr.onreadystatechange = function() { 
 
	   if(xhr.readyState == 4 && xhr.status == 200) {
 
			var rst = xhr.responseText;
			window.location.reload();
		}
		return xhr.readyState;
	} 
 
var data = "id="+id;
xhr.open("GET", datas.php?"+data,true);
}
et celle qui est sensée appeler cette fonction autant de fois qu'il y a d'items sélectionnés :

Code :
1
2
3
4
5
6
7
8
9
10
 
function charge_plusieurs_ligne(){
var selectbox = document.forms['choix'].elements['myitems'];
var id = "";
	for (var i = 0; i < selectbox.length; i++)
	{
		id = selectbox.options[i].value;
		charge_ligne(id);
	}
}
Et donc, ça fonctionne moyennement. Un coup ça affiche 6 lignes sur 30 que contient le select, un coup 10 ou 12, mais jamais tout - dans le cas où je sélectionne tous les items...
Je suppose que c'est une question de délai, que peut-être il faudrait mettre un setInterval quelque part...où que je n'emploie pas la bonne méthode...
Bref, je veux bien quelques pistes.
Merci d'avance.
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 14h48   #2
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
Bon, et bien je passe ce post en résolu, parce que, bien que je ne sache pas pourquoi, le simple fait d'avoir mis un alert après la boucle fait que ça fonctionne...
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h02.


 
 
 
 
Partenaires

Hébergement Web