【问题标题】:PHP Array to separate js arrayPHP数组分隔js数组
【发布时间】:2014-05-29 15:18:49
【问题描述】:

我有 2 个 php 文件。 [插入.php & 输出.php]

插入.php: 捕获 2 个日期并将其发送到 Output.php

输出.php: 2 个日期转到 mysql 查询。结果我会保存到一个数组中。

while($myArray = mysqli_fetch_array($sqlresult)) {}

现在我想在一个单独的 js 文件中使用这个数组(myArray)来为结果着色。

 while($myArray = mysqli_fetch_array($sqlresult)) { 
  echo $myArray["res1"];
  echo "<script type='text/javascript'> 
  var stats = new Array(";
  echo '"' . implode('","', $myArray) . '");';
  echo "\n</script>";}

在我拥有的 js 文件中:

for (var x = 0; x < stats.length; x++) {

    $(".class#" + stats[x]).css("background-color", "#e74c3c");
    $(".class2#" + stats[x]).css("background-color", "#e74c3c");
    alert(stats);
}

在我的 SQL 表中,我插入了 3 个列。 [a1、a2 和 a3]。他应该给我这 3 个 id [a1, a2, a3] 着色。 但他只拿了第一个并提醒我两次:

a1,a1

我做错了什么?

【问题讨论】:

  • 您应该包含您的查询并提供一些来自您的表的示例数据。
  • 看来你要定义var stats = new Array() 很多次了...
  • 这可能你也感兴趣:stackoverflow.com/questions/7375120/…

标签: javascript php mysql arrays


【解决方案1】:

这可能有效(经过一些修改):

$a = array();
while($myArray = mysqli_fetch_array($sqlresult)) { 
  array_push($a, $myArray);
}

echo "<script type='text/javascript'> 
var stats =" . json_encode($a) . ';';
echo "\n</script>";

【讨论】:

    【解决方案2】:

    你为什么不使用正确的方法。

    //php function
    function test(){
         ...
         $array = mysqli_fetch_array($sqlresult);
         ...
         //after fetching your array
         echo json_encode($array)
    }
    
    <script>
        //retrieve from js
        var jsArray = JSON.parse(<?php echo test(); ?>);
        //Or
        var jsArray = jQuery.parseJSON(<?php echo test(); ?>);
    
    </script>
    

    【讨论】:

    • 现在回显 = {"0":"a1","col":"a1"}{"0":"a2","col":"a2"}。但是我的js没有给它上色
    • 我可以使用没有函数名的 JSON.parse() 吗?
    • 当然可以。而不是函数把你的数组放在那里
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多