如何使用jquery ajax将php数组传递给javascript数组?

时间:2011-09-13 06:15:41

标签: php javascript jquery

我关注了其他问题,但仍无法解决此问题。我想将 php 中的数组值存储到 js 的数组中。我试过自己在我试过的所有情况下获得不确定的值 很高兴有人让我知道我错在哪里 我的Php代码

<?php
$var=5; 
$myArray = array();
while($var<10){
$myArray[]=$var;
$var++; 
}
echo json_encode($myArray);
?>

和js代码

jQuery(document).ready(function(){
jQuery("#previous").click(function(){
var res = new Array(); var i= 0;
    jQuery.getJSON("phparray.php", function(data) {
while(i<5){
            res[i]=data.i;
         i++;
}
        });
    });
jQuery("#result").html(res[0]);
});

也对这个js进行了抨击

jQuery(document).ready(function(){
jQuery("#previous").click(function(){
var res = new Array();
var i= 0;
    jQuery.getJSON("phparray.php", function(data) {
        jQuery(data).each(function(key, value) {
    res[i]=value;
          i++;
        });
    });
jQuery("#result").html(res[0]);
});

2 个答案:

答案 0 :(得分:2)

尝试以下代码

   <?php
        $var=5; 
        $myArray = array();
        while($var<10){
        $myArray[]=$var;
        $var++; 
        }
       $dataarray=array("myarray"=>$myArray);
        echo json_encode($dataarray);
        ?>

<强> Jquery的

  jQuery(document).ready(function(){
    jQuery("#previous").click(function(){
    var res = new Array(); 
        jQuery.getJSON("phparray.php", function(data) {
    var i= 0;
    while(i<data.myarray.length){
                res[i]=data.myarray[i];
             i++;
    }
  jQuery("#result").html(res[0]);
            });
        });

    });

答案 1 :(得分:1)

您的代码的问题是您在加载JSON之前更新结果。在这种情况下,也没有理由复制数组中的每个项目只需设置res = data(尽管上面发送回关联数组或JS对象的示例是很好的做法)。

PHP

<?php
  for($var=5; $var<10; $var++){
    $myArray[]=$var;
  }
  echo json_encode($myArray);

的JavaScript

$(document).ready(function() {
  var res;
  $("#result").bind('update', function() {
    $("#result").html(res[0]);
  });
  $("#previous").click(function(){
    $.getJSON("phparray.php", function(data) {
      res = data;
      $("#result").trigger('update');
    });
  });
});