par
donatello » 04 nov. 2005, 17:00
voici la fonction que j'utilise pour convertir un tableau php en tableau js
$tableau= array('janvier', 'fevrier', 'mars', 'avril'); // tableau php
$nomjs= test; //nom du tableau js retouné
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");
}
}
}
elle marche bien mais le pb est que le tableau js retouné est écrit dans la page.
Que dois-je modifier pour que le tableau js soit retourné en sortie sans écrire dans la page?
(j'ai essayé quelques return mais je maîtrise pas assez!)
voici la fonction que j'utilise pour convertir un tableau php en tableau js
[php]
$tableau= array('janvier', 'fevrier', 'mars', 'avril'); // tableau php
$nomjs= test; //nom du tableau js retouné
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");
}
}
}
[/php]
elle marche bien mais le pb est que le tableau js retouné est écrit dans la page.
Que dois-je modifier pour que le tableau js soit retourné en sortie sans écrire dans la page?
(j'ai essayé quelques return mais je maîtrise pas assez!)