Recuperation du resultat d'une requete mysql dans un tableau javascript

Soyez le premier à donner votre avis sur cette source.

Snippet vu 46 979 fois - Téléchargée 28 fois

Contenu du snippet

Cette fonction séclare un tableau associatif javascript
de la forme tableau["nomchamp"][n°ligne] == valeur
contenant le résultat d'une requête mysql.

(04/06/2004 : correction d'un bug trouvé qui survenait avec des résultats de requête vides)

Source / Exemple :


// Déclare un tableau associatif javascript de la forme tableau["nomchamp"][n°ligne] == valeur
// contenant le résultat d'une requête mysql.
// $requete : chaine de caractères contenant la requête mysql à lancer.
// $nomtabjs : nom de la variable tableau à déclarer en javascript.

function mysql_to_js($requete, $nomtabjs) {

	// Requête mysql
	$req = mysql_query($requete)
	or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
	
	$taille = mysql_num_rows($req);
	// Ecriture de la déclaration du tableau javascript si la requête
	// contient quelque chose, sinon déclaration d'un tableau null.
	$numfields = mysql_num_fields($req);
	if($numfields > 0) {
		
		// Déclaration de la variable tableau.
		echo("var ".$nomtabjs." = new Array(".$numfields.");\n");
		// Déclaration des tableaux de valeurs pour chaque champs.
		for($i=0; $i<$numfields; $i++) {
			echo($nomtabjs."['".mysql_field_name($req, $i)."'] = new Array(".$taille.");\n");
		}
		
		if($taille>0) {
			// Déclaration du reste des valeurs du résultat de la requête.
			$i=0;
			while($data = mysql_fetch_assoc($req)) {
				foreach($data as $key => $value) {
					echo($nomtabjs."['".mysql_escape_string($key)."'][".$i."] = '".mysql_escape_string($value)."';\n");
				}
				$i++;
			}
		}
	}
	else echo("var ".$nomtabjs." = null;\n");
}

Conclusion :


Cette fonction peut s'avérer très utile, si vous projetez de faire des contrôles javascript dans une page sur des données chargées au démarrage de celle ci.

(cela évite les redirections et temps de chargements à chaque modification d'une combobox, par exemple)...

en espérant vous avoir été utile, @+

A voir également

Ajouter un commentaire

Commentaires

cs_claude77260
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013
-
bonjour

qui pourrait me dire comment alimenter une combo sans recharger la page avec ce script

Merci d’avance, car j'ai un formulaire avec plusieurs combo qui se neutralisent les unes les autres
de plus je ne vois pas ou placer echo '<script language="JavaScript" type="text/javascript">'";
kraten
Messages postés
2
Date d'inscription
jeudi 23 juillet 2009
Statut
Membre
Dernière intervention
20 août 2009
-
Franchement, tu me retires une écharde du pied, merci beaucoup.
aelenia
Messages postés
1
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mai 2008
-
pour l'utiliser, met le entre des balises "<?php" "?>" et ajoute avant "echo '<script language="JavaScript" type="text/javascript">'";
et après echo '</script>';

et ca marchera ^^

merci beaucoup pour ce script, pour ceux qui connaissent rien au XML c'est un vrai miracle!
nacer183
Messages postés
20
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
4 avril 2007
-
merci pour cette fonction mais comment et ou je peut appeller cette fonction dans le code php ou javascript?
cs_neosqual
Messages postés
13
Date d'inscription
vendredi 11 juin 2004
Statut
Membre
Dernière intervention
18 mai 2005
-
ca à l'air bien...néammoins j'ai une erreur me disant qu'un ";" est attendu...je n'ai pas trouvé ou était l'erreur syntaxique

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.