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>&nbsp;",
$key,"&nbsp;<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 
 
info/tableaundimensions2arbre.txt · Dernière modification: 2008/11/11 11:37 (modification externe)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki