web-dev-qa-db-fra.com

comment assigner des valeurs de tableau php à un tableau javascript

Veuillez fournir de l'aide sur la façon d'attribuer des valeurs de tableau php à un tableau javascript

----------- En utilisant le code php ci-dessous, je stocke des données dans un tableau php -----------

<?php
$str_query="SELECT title,description FROM tablename ORDER BY title";
$rs_sch=GetRecordset($str_query); 

$int_count=0;
$schd_arr = array();
while(!$rs_sch->EOF())
{
$schd_arr[$int_count] = $rs_sch->Fields("title").": ".$rs_sch->Fields("description");
$rs_sch->MoveNext();
$int_count++;
}
?> 

----- En utilisant le code javascript ci-dessous, j'essaie de stocker des données de tableau php dans un tableau javascript -----

S'il vous plaît laissez-moi savoir quoi et comment écrire la variable en dessous de 2 emplacements mentionnés afin que mon code puisse fonctionner.

<script type="text/javascript" language="javascript">
var pausecontent=new Array()
for (sch_cnt=0; sch_cnt<*Here I want to assign value of $int_count php variable*; sch_cnt++)
{
pausecontent[sch_cnt]=<?php *Here I want to assign php array and counter values (something like this - $schd_arr[sch_cnt];)* ?>;
}
</script>

Merci d'avance, KRA

13
KRA

Vous ne pouvez pas boucler comme ça, vous devez boucler le tableau PHP et Push dans un tableau javascript:

<script type="text/javascript" language="javascript">
    var pausecontent = new Array();
    <?php foreach($schd_arr as $key => $val){ ?>
        pausecontent.Push('<?php echo $val; ?>');
    <?php } ?>
</script>
39
Mihai Iorga

Vous pouvez directement utiliser la fonction json_encode . Il est facile à utiliser et produit du javascript valide, il est donc très stable:

<script type="text/javascript">
    var pausecontent = <?php echo json_encode($php_array); ?>;
</script>
40
Hkachhia

Je pense que vous feriez mieux de placer le tableau sur votre javascript en premier. Ce serait quelque chose comme ça:

var theVariableYouWantTheArrayIn = <?php echo json_encode($theArrayYouWantInJavascript); ?>

Après cela, il s’agit d’un tableau js normal. Vous pouvez donc utiliser des propriétés telles que .length, ce qui facilitera vraisemblablement la boucle.

2
11684

J'ai eu le même problème en faisant cela, mais j'ai finalement trouvé la meilleure solution

    <script>       
    var arr=[];
    arr.Push('<?php
             include('conn.php');
        $query = "SELECT *FROM c group by name";
        $res = mysqli_query($conn,$query) or die(mysqli_error($conn));

        while($data = mysqli_fetch_array($res))
        {


             echo $data["name"];
        }
             ?>');
        </script>
0
Ravi Kumar Yadav

Au-dessus des deux réponses en bien. 

  1. Parcourez le tableau que vous avez obtenu à la suite de votre requête de base de données et ajoutez chaque valeur à une nouvelle variable PHP,
  2. Ajoutez un compteur et incrémentez-le à chaque itération pour vous assurer que vous n’ajoutez pas de virgule après le dernier élément,
  3. Si le nombre d'éléments dans le tableau est supérieur à 1, créez le tableau comme d'habitude, sinon créez un nouveau tableau avec 1 élément et affectez votre valeur de tableau PHP à l'index 0.
0
Balaji Courier