将数组从PHP(从DB)传递给JS?

时间:2013-02-05 10:08:47

标签: php javascript jquery ajax

我的目标是 - 终于 - 一个正常的'我的js文件中的JS数组。也许json是这样做的方式 - 但是数组中的元素应保持有序,它只是三个数组的数组:[[" 1"," 2",&# 34; 3"] [" 1"" 2"" 3"] [" 1"" 2& #34;" 3"。]]

我的php-query(它确实产生了上面的数组 - 我的意思是:它确实有效):

//这是文件' dbquery.php'

<?php
    include_once('../resources/init.php');

    $query = mysql_query("SELECT `useranswer`, `solution`, `time` FROM `results`");
    $qlen = mysql_query("SELECT COUNT(1) FROM `results`");
    $len = mysql_result($qlen, 0);

    $user_a = array();
    $solu_a = array();
    $time_a = array();

    while($row = mysql_fetch_assoc($query)){

       array_push($user_a, $row['useranswer']);
       array_push($solu_a, $row['solution']);
       array_push($time_a, $row['time']);
    }

    $cd_result = array($user_a, $solu_a, $time_a);
    $cd_answer = json_encode($cd_result);
    echo $cd_answer;
?>

我认为json不是这里的适当形式。

现在我想要的是我的js文件中的一个js数组,如: my_array = [[1,2,3],[1,2,3],[1,2,3]] < /强>

但我非常失败。

使用$ .ajax()我不知道如何在没有&#39;数据的情况下立即获取所有数据:&#39;每个单一的价值。我只想&#34;赶上&#34;我的回声来自php - 怎么做?

2 个答案:

答案 0 :(得分:1)

喜欢这个

<?php
    include_once('../resources/init.php');

    $query = mysql_query("SELECT `useranswer`, `solution`, `time` FROM `results`");
    $qlen = mysql_query("SELECT COUNT(1) FROM `results`");
    $len = mysql_result($qlen, 0);

    $user_a = array();
    $solu_a = array();
    $time_a = array();

    while($row = mysql_fetch_assoc($query)){

       array_push($user_a, $row['useranswer']);
       array_push($solu_a, $row['solution']);
       array_push($time_a, $row['time']);
    }

    $cd_result = array($user_a, $solu_a, $time_a);
    $cd_answer = json_encode($cd_result);
    echo json_encode ($cd_answer);  // encode in json format
?>

和ajax:

$.ajax({
  type: "GET",
  url: "test.php",
  dataType: "json",
  data : {anything : 1},
  success:function(data){ 
    var x = jQuery.parseJSON( data ); // parse the answer
    // if you want in an array format then just use eval()
    x = eval(x);
    alert(x);
}
});

答案 1 :(得分:0)

如果您只需要在呈现页面时将PHP变量传递给JS,那么请在PHP视图层中执行此操作:

<script type="text/javascript">
    var myInt = <?php echo $int ?>;
    var myString = '<?php echo $string ?>'; 
    var myArray = <?php echo json_encode($array) ?>;

    // All these JS variables can now be used here
</script>

显然,你需要确保变量是有效的 - 所以在int的情况下,如果它是null或未定义,你需要确保你不呈现赋值 - 否则它将产生客户端错误。