Conversion d'un tableau php en déclaration de tableau javascript

Contenu du snippet

C'est une fonction PHP qui au moment où elle est appellée fournit le code javascript correspondant au tableau php passé en paramètre.

conv_tabjs($tableau, $nomjs);

$tableau est le tableau php à convertir
$nomjs est une chaine de caractère contenant le nom de la variable javascript ciblée

Source / Exemple :


// Convertit un tableau PHP en déclaration d'un tableau javascript
// $tableau : variable tableau PHP à convertir
// $monjs : nom de la variable tableau en javascript
// $prempass : /!\ NE PAS UTILISER : sert à différentier le premier passage
// des passages récursifs, je n'ai pas déclaré une seconde fonction pour des
// raisons de portabilité...
//
// Utilisation commune : conv_tabjs($tableau, "nomJS");
//

function conv_tabjs($tableau, $nomjs, $prempass=true) {

	if($prempass) {
		$taille = count($tableau);
	
		echo "var ".$nomjs." = new Array(".$taille.");\n";
		foreach($tableau as $key => $val) {
			if(is_string($key)) $key = "'".$key."'";
			conv_tabjs($val, $nomjs."[".$key."]", false);
		}
	}
	else {
		if(is_array($tableau)) {
			echo($nomjs." = new Array(".count($tableau).");\n");
			foreach($tableau as $key => $val) {
				if(is_string($key)) $key = "'".$key."'";
				conv_tabjs($val, $nomjs."[".$key."]", false);
			}
		}
		else {
			if(is_string($tableau)) $tableau = "'".addcslashes($tableau,"'")."'";
			echo($nomjs." = ".$tableau.";\n");
		}
	}
}

Conclusion :

      • Attention : cette fonction écrit dans le document, et elle doit absolument être interprêtée entre des balises <script language="javascript"></script>

(ne pas oublier les balises PHP qd même lol : y en a qui ont essayé y ont eu des problèmes :-D ).

Elle fonctionne avec tous les types de tableau php, et déclare un tableau javascript qui en est l'exact clone.

J'espère vous avoir été utile, @+

10/06/2004 >> bug corrigé : la fonction convertissais toutes les valeurs numériques en chaines de caractères, dorénavant elle respecte le type autant pour la valeur que pour sa clé...

A voir également

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.