【问题标题】:How to assign PHP array values to JavaScript array如何将 PHP 数组值分配给 JavaScript 数组
【发布时间】:2012-10-10 06:52:42
【问题描述】:

如何将 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>

【问题讨论】:

  • 如果脚本和php源代码在同一个文件中,请确保代码先执行,然后引用即可。否则,请添加一些有关您正在尝试做的事情的信息

标签: php javascript


【解决方案1】:

您可以直接使用json_encode 函数。它易于使用并生成有效的 javascript,因此非常稳定:

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

【讨论】:

  • 特别是因为这将输出有效的javascript。更可取。
【解决方案2】:

你不能这样循环,你需要将 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>

【讨论】:

    【解决方案3】:

    我认为您最好先将数组添加到您的 javascript 中。应该是这样的:

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

    之后它是一个普通的 js 数组,因此您可以使用 .length 之类的属性,这可能会使循环更容易。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,但最终找到了最好的解决方案

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

      【讨论】:

        【解决方案5】:

        以上两个答案都很好。

        1. 遍历您作为数据库查询结果获得的数组,并将每个值添加到一个新的 PHP 变量中,
        2. 添加一个计数器并在每次迭代期间递增,以确保您没有在最后一个元素后添加逗号,
        3. 如果数组中元素的计数大于 1,则照常创建数组,否则创建一个包含 1 个元素的新数组并将您的 PHP 数组值分配给索引 0。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-05
          • 2012-10-09
          • 2011-12-24
          • 2015-07-14
          • 2022-12-05
          • 1970-01-01
          • 1970-01-01
          • 2015-07-06
          相关资源
          最近更新 更多