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 01/04/2011, 01h10   #1
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
Par défaut AJAX faire une boucle sur un fichier.

Bonjour,

Voila mon problème:
J'ai cree un fichier .php qui genere du code a partir d'une requete afin de pouvoir traiter les données afin de creer un tableau.
Code :
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
	$db = mysqli_connect('127.0.0.1','*','*','*');
	$sql = "SELECT * FROM essaiMatch";
	$requete = mysqli_query ($db,$sql);
	if (mysqli_num_rows($requete) == 0)
	{
	}
	else
	{
		echo '{ ';
		$nb = mysqli_num_rows($requete);
		echo 'nb:'.$nb.' , ';
		$i = 1;
		while ($Data = mysqli_fetch_assoc($requete))
		{
				echo 'Years'.$i.':';
				echo $Data["Years"];
				echo ' , Month'.$i.':';
				echo $Data["Month"];
				echo ' , Day'.$i.':';
				echo $Data["Day"];
				echo ' , Equipe'.$i.':';
				echo '\''.$Data["Equipe"].'\'';
				echo ' , Rencontre'.$i.':';
				echo '\''.$Data["Rencontre"].'\' ';
				$i++;
 
		}echo '}';
	}
a partir de la fonction suivante, je traite les données qui on etait generer par ce fichier php:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function defmatchU10()
{
		var requete_ajax = new XMLHttpRequest();
		requete_ajax.open('GET','Essai.php', false);
		requete_ajax.send(null);
		//alert(requete_ajax.status);
		var data = eval ('('+requete_ajax.responseText+')');
		nb = data.nb;
		nb++;
		//alert(nb);
		for ( i= 1; i<nb; i++)
		{
			var bla = 'Years' + i;
			alert(bla);
			Years = data.bla;
			alert(Years);
			Month = data.Month + i;
			Day = data.Day + i;
			Equipe = data.Equipe + i;
			Rencontre = data.Rencontre + i;
 
			equipeMatch(Years,Month,Day,Equipe,Rencontre);
		}
Or le probleme et que cela ne fonctionne pas au niveau de la commande:
equipeMatch est une fonction avec les parametre recuperer dans le fichier php.
Je sais que cela fonctionne si la requete ne retourne qu'une ligne et que la fonction javascipt et celle ci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function defmatchU10()
{
		var requete_ajax = new XMLHttpRequest();
		requete_ajax.open('GET','Essai.php', false);
		requete_ajax.send(null);
		//alert(requete_ajax.status);
		var data = eval ('('+requete_ajax.responseText+')');
			Years = data.Years1;
			alert(Years);
			Month = data.Month1;
			Day = data.Day1;
			Equipe = data.Equipe1;
			Rencontre = data.Rencontre1;
 
			equipeMatch(Years,Month,Day,Equipe,Rencontre);
		}
Or je voudrais que la function javascript s'execute un nombre de fois égale au nombre de ligne retourner par la requête php.

Merci de m'aider a trouver la réponse.
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 02h06   #2
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

Tu peux générer un tableau JS de ce genre...

Code js :
1
2
3
4
5
var data=[
	2,
	{Years:xxx, Month:xxx, Day:xxx, Equipe:xxx, Rencontre:xxx},
	{Years:xxx, Month:xxx, Day:xxx, Equipe:xxx, Rencontre:xxx}
];
data[0] contient le nombre de lignes
data[i] contient les données de la ligne #i
JS : Récupération des infos...
Code js :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
var data = eval(requete_ajax.responseText);
var nb = data[0];
var i,Years,Month,Day,Equipe,Rencontre;
for(i=1;i<=nb;i++){
	Years = data[i].Years;
	Month = data[i].Month;
	Day = data[i].Day;
	Equipe = data[i].Equipe;
	Rencontre = data[i].Rencontre;
 
	alert(
		'Ligne #'+i+'\n\n'+
		Years +'\n'+
		Month +'\n'+
		Day +'\n'+
		Equipe +'\n'+
		Rencontre
	);
 
	equipeMatch(Years,Month,Day,Equipe,Rencontre);
}

PHP : Génération de la variable JS (non testé)
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$nb = mysqli_num_rows($requete);
$js='';
while($Data = mysqli_fetch_assoc($requete)){
	$js.=",\n\t{";
	$js.='Years:'.$Data["Years"].', ';
	$js.='Month:'.$Data["Month"].', ';
	$js.='Day:'.$Data["Day"].', ';
	$js.='Equipe:\''.$Data["Equipe"].'\', ';
	$js.='Rencontre:\''.$Data["Rencontre"].'\'';
	$js.='}';
}
echo "[\n\t".$nb.$js."\n];\n";
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 03h04   #3
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
Merci de ton aide.

J'ai un probleme, car je n'arrive pas a acceder a la donnees nb.
juste apres:
j'ai ajouter un alert sur cette variable, et la box ne s'ouvre pas.

Je ne voit pas d'ou cela peux venir.
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 03h36   #4
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
Merci en faite ca fonctionne.
Cala venait de moi qui n'avait pas modifier la rcommande:
Code :
var data = eval (requete_ajax.responseText);
Merci encore, ca va carrement simplifier mon code.

encore Merci.
freeman43 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 04h04.


 
 
 
 
Partenaires

Hébergement Web