CONVERSION D'UN TABLEAU PHP EN DÉCLARATION DE TABLEAU JAVASCRIPT

Signaler
Messages postés
3
Date d'inscription
jeudi 17 avril 2003
Statut
Membre
Dernière intervention
10 juin 2004
-
Messages postés
2
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
28 novembre 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22362-conversion-d-un-tableau-php-en-declaration-de-tableau-javascript

Messages postés
2
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
28 novembre 2007

veuillez ne pas tenir compte de mon dernier message, il était destiné à un autre script (celui qui affiche mes images entre autre).

On ne peut pas éditer, donc j'en rajoute une couche :p

Merci tout de même à l'auteur de ce script
Messages postés
2
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
28 novembre 2007

Bonjour,

je souhaiterai utiliser ce script mais j'ai besoin que les adresses des images proviennent de ma base de données mysql.

Je galère à passer mon tableau PHP vers JS, si quelqu'un pouvait me filer un coup de main je lui en serait très reconnaissant, ça fait plusieurs heures que je passe sur le problème et sans grand succès. :-/

Félicitation à l'auteur de ce script tout de même qui a du en dépanner pas mal :)
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Un petit défaut de cette fonction c'est qu'elle écrit le tableau javascript au moment où elle est appelée, au lieu de renvoyer une valeur qui peut stockée dans une variable.

Donc la modif qui s'impose :

function conv_tabjs($tableau, $nomjs, $ret '', $prempass true) {

global $ret;

if($prempass) {
$taille = count($tableau);

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

Ainsi on peut écrire :

$tableaujavascript = conv_tabjs($tableauphp, 'montableau')
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Vraiment nickel, même avec des tableaux compliqués... bravo
Afficher les 19 commentaires