Auteur : siddh
Version : 04/01/2006
source: http://php.developpez.com/sources/?page=phpjs#tabphpjs
Afficher un tableau php de N dimensions dans un arbre
[haut]
<html>
<head>
<title>tableaux</title>
<style type='text/css'>
.case{
margin-left: 30px;
}
.liens{
text-decoration: none;
}
</style>
<script type='text/javascript'>
function swap(elem){
leparent = elem.parentNode;
disp = 'none';
if(elem.firstChild.innerHTML == '-'){
elem.firstChild.innerHTML = "+";
elem.lastChild.style.display = 'inline';
}
else{
elem.firstChild.innerHTML = "-";
elem.lastChild.style.display = 'none';
disp = 'block';
}
for(var i=1;i<leparent.childNodes.length;i++){
leparent.childNodes[i].style.display = disp;
}
}
window.onload = function(){
liens = document.getElementsByName('lesliens');
for(var i=0;i<liens.length;i++)
swap(liens[i]);
}
</script>
</head>
<body>
<?
function affiche($tab){
foreach($tab as $key => $value){
echo "<div class='case'>";
echo "<a href='#' class='liens' name='lesliens' onclick='swap(this)'><span>-</span> ",
$key," <span class='count'>(",is_array($value) ? count($value) : "1",")</span></a>";
if(is_array($value))
affiche($value);
else
echo "<div class='case'>",$value,"</div>";
echo "</div>";
}
}
$montab = array("a" => array("b" => array("f" => "bla","g" => "bla"),
"c" => array("d" => "bla","e" => "bla")),"h" => "bla");
affiche($montab);
?>
</body>
</html>
Auteur : torvalds17
Auteur : denisC
Version : 04/01/2006
Conversion d'un tableau PHP de dimension N en tableau JavaScript
[haut]
Voici le code de la fonction php permettant la conversion :
<?php
function construisTableauJS($tableauPHP, $nomTableauJS){
echo $nomTableauJS." = new Array();";
for($i = 0; $i < count($tableauPHP); $i++){
if(!is_array($tableauPHP[$i])){
echo $nomTableauJS."[".$i."] = '".$tableauPHP[$i]."';";
}
else{
construisTableauJS($tableauPHP[$i], $nomTableauJS."[".$i."]");
}
}
return;
}
?>
Dans cette fonction, le code Javascript est généré dynamiquement par le Php. On utilise des echo (Php) pour écrire les ligne de code Javascript. Voici la déclaration du tableau en php :
$monTableauPHP = array(array("toutou", "toto"), array("titi", "tata", \
array("tonton", "tutu", array("quatrieme etage du tableau", 54))));
On peut éventuellement afficher le tableau grâce à :
<?php
echo "<pre>";
print_r($monTableauPHP);
echo "</pre>";
?>
Et voici le code permettant la création du tableau Javascript :
echo "<script type='text/javascript'>";
echo "<script type='text/javascript'>";
construisTableauJS($monTableauPHP, "monTableauJS");
document.write(monTableauJS.toSource());
echo "</script> ";
Vous obtenez ainsi un tableau Javascript : monTableauJS à partir d'un tableau php : $monTableauPHP