Partage
  • Partager sur Facebook
  • Partager sur Twitter

copier un array php en javascript

    14 décembre 2005 à 21:16:58

    Salut à tous.

    Je voudrais savoir comment faire pour copier un array php en array javascript. C'est pour un mini chat.
    Ou sinon s'il y existe un autre systeme pour se connecter à la base de données avec javascript.

    merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      14 décembre 2005 à 21:51:07

      Salut.

      Si il s'agit d'un tableau à clès numériques contenant des valeurs numériques, rien de plus simple :
      echo 'var tableau = new Array('.implode(',', $tableau).');';


      Par contre si ton tableau contient des chaînes de caractères et des chiffres mélangés il faut faire un peut plus :
      //Exemple de tableau
      $tableau = array("test", 4, "essai", 12);

      echo 'var tableau = new Array(';

      foreach($tableau as $valeur) {
        if(is_int($value))
          echo $value.',';
        else
          echo '"'.$value.'",';
      }
      echo ');';
      • Partager sur Facebook
      • Partager sur Twitter
        15 juin 2007 à 11:22:41

        J'aimerais savoir si quelqu'un à déjà fait une fonction récursive pour
        convertir un array multidimentionnel indexé de php à JS.
        Je suis désolé j'ai un peu la flemme et
        je ne suis pas sur de m'y prendre de la bonne manière.
        • Partager sur Facebook
        • Partager sur Twitter
          12 mai 2009 à 10:14:20

          Un peu comme ca:

          //Exemple de tableau
          $tableau = array(array(0=> 4, 1=> 6), array(0, 12));
          
          
          function construisTableauJS($tableau)
          {
          	$temp= 'Array(';
          	for($i = 0; $i < count($tableau); $i++)
          	{ 
          	  if(!is_array($tableau[$i]))
          	  {
                   if(is_int($tableau[$i]))
          			$temp.= $tableau[$i].',';
          		  else
          			$temp.= '"'.$tableau[$i].'",';
                }
                else
          		$temp.= construisTableauJS($tableau[$i]);
          
          	}
          	$temp.= ');';
          	return $temp;
          }
          //Appel de la fonction
          echo construisTableauJS($tableau);
          
          • Partager sur Facebook
          • Partager sur Twitter
            12 mai 2009 à 10:19:28

            Regarde peut-être du coté de JSON.
            • Partager sur Facebook
            • Partager sur Twitter
              30 novembre 2009 à 11:47:28

              je propose cette solution (qui fonctionne à tous les coups, que l'on souhaite transmettre une variable ou un tableau !)

              <?php
              function php2js ($var) {
                  if (is_array($var)) {
                      $res = "[";
                      $array = array();
                      foreach ($var as $a_var) {
                          $array[] = php2js($a_var);
                      }
                      return "[" . join(",", $array) . "]";
                  }
                  elseif (is_bool($var)) {
                      return $var ? "true" : "false";
                  }
                  elseif (is_int($var) || is_integer($var) || is_double($var) || is_float($var)) {
                      return $var;
                  }
                  elseif (is_string($var)) {
                      return "\"" . addslashes(stripslashes($var)) . "\"";
                  }
                  // autres cas: objets, on ne les gère pas
                  return FALSE;
              }
              ?>
              



              exemple d'utilisation :
              <?php
                $tab = array(1, 2, array(3, 4), 5, "salut", True);
                $js = php2js($tab); // [1,2,[3,4],5,'salut',true]
              ?>;
              <script language="JavaScript">
                var tab =<?php echo $js; ?>
                alert(tab);
              </script>
              




              source : http://www.phpcs.com/codes/PHP-TO-JS-C [...] PT_13232.aspx
              • Partager sur Facebook
              • Partager sur Twitter
                6 février 2012 à 12:19:07

                Bonjour à tous,

                Je me permet de remonter le sujet, car bien placé dans les moteurs de recherche, et car je propose une solution qui transmet valeurs ET clés entre php et js.

                La variable $a peut être une table ou une variable.
                Cette variable peut même contenir, text, html et même du javascript :)
                HF

                <?
                $a['test'][0]='toto';
                $a['test'][1]='tata';
                $a[2]['huhu']['ahah']='<a href="toto.php">HIHI</a>';
                $a[2]['huhu'][0]='tutu';
                $a[2]['huhu']['héhé']='tyty';
                $a[3]='hoho';
                $a[4][0]=true;
                $a[4][1]=12.25;
                
                echo '
                <script type="text/javascript">
                '.var_to_js('a',$a).'
                </script>
                ';
                
                
                
                function html_to_js_var($t){
                	return str_replace('</script>','<\/script>',addslashes(str_replace("\r",'',str_replace("\n","",$t))));
                }
                function var_to_js($jsname,$a){
                    $ret='';
                	if (is_array($a)) {
                		$ret.=$jsname.'= new Array();
                		';
                		
                        foreach ($a as $k => $a) {
                			if (is_int($k) || is_integer($k))
                				$ret.= var_to_js($jsname.'['.$k.']',$a);
                			else
                				$ret.= var_to_js($jsname.'[\''.$k.'\']',$a);
                        }
                		
                    }
                    elseif (is_bool($a)) {
                        $v=$a ? "true" : "false";
                		$ret.=$jsname.'='.$v.';
                		';
                    }
                    elseif (is_int($a) || is_integer($a) || is_double($a) || is_float($a)) {
                       $ret.=$jsname.'='.$a.';
                		';
                    }
                    elseif (is_string($a)) {
                       $ret.=$jsname.'=\''.html_to_js_var($a).'\';
                		';
                    }
                    return $ret;
                }
                ?>
                


                Resultat


                <script type="text/javascript">
                a= new Array();
                		a['test']= new Array();
                		a['test'][0]='toto';
                		a['test'][1]='tata';
                		a[2]= new Array();
                		a[2]['huhu']= new Array();
                		a[2]['huhu']['ahah']='<a href=\"toto.php\">HIHI</a>';
                		a[2]['huhu'][0]='tutu';
                		a[2]['huhu']['héhé']='tyty';
                		a[3]='hoho';
                		a[4]= new Array();
                		a[4][0]=true;
                		a[4][1]=12.25;
                		
                </script>
                
                • Partager sur Facebook
                • Partager sur Twitter

                copier un array php en javascript

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown