Подтвердить что ты не робот

Как присвоить значения массива php массиву javascript

Просьба предоставить информацию о том, как присвоить значения массива php массиву javascript

----------- Используя ниже php-код, я храню данные в 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++;
}
?> 

----- Использование ниже кода javascript Я пытаюсь сохранить данные массива php в массив javascript -----

Пожалуйста, дайте мне знать, что и как писать переменную ниже 2 упомянутых мест, чтобы мой код мог работать.

<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>

Заранее спасибо, KRA

4b9b3361

Ответ 1

Вы не можете так зацикливаться, вам нужно закодировать массив PHP и push в массив 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>

Ответ 2

Вы можете напрямую использовать функцию json_encode. Он прост в использовании и создает допустимый javascript, поэтому он очень стабилен:

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

Ответ 3

Я думаю, вам лучше всего получить массив на ваш javascript. Это будет примерно так:

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

После этого это обычный массив js, поэтому вы можете использовать такие свойства, как .length, который предположительно сделает цикл намного проще.

Ответ 4

Выше обоих ответов в хорошем.

  • Итерации через массив, полученный в результате вашего запроса БД, и добавление каждого значения в новую переменную PHP,
  • Добавьте счетчик и увеличивайте его во время каждой итерации, чтобы убедиться, что вы не добавляете запятую после последнего элемента,
  • Если количество элементов в массиве больше 1, создайте массив как обычно, в противном случае создайте новый массив с 1 элементом и присвойте значение вашего массива PHP индексу 0.

Ответ 5

У меня была такая же проблема, но, наконец, нашлось лучшее решение

    <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>

Ответ 6

Вы можете просто сделать это следующим образом:

for (sch_cnt=0; sch_cnt<?php echo $int_count; ?>; sch_cnt++)