Jquery数组在json回调时不会改变


Jquery array isn't changed when json callback

我想在点击事件触发时将arr1值更改为arr2值(test.php)。但是,下面的代码有错误。

有人能帮我吗?谢谢!

$(function(){
               var arr1 = ["apple","banana","orange"];
               $("input").click(function(){
                   $.ajax({
                          type:"post",
                          url:"test.php",
                          cache:false,
                          success: function(data) {
                                arr1 = data;
                              }
                          });
                });
    });

——Test.php ----------------------------------------

<?php   
    echo $arr2 =array("Saab","Volvo","BMW","Toyota"); 
?>

您需要使用JSON将复杂对象传输到javascript。在php中,使用json_encode对数组进行编码,如下所示:

<?php
    $arr2 = array("Saab","Volvo","BMW","Toyota");
    echo json_encode($arr2);
?>

然后告诉jquery使用dataType: 'json'在json中对话,像这样:

$.ajax({
    type: "post",
    url: "test.php",
    dataType: "json",
    cache: false,
    success: function(data) {
        arr1 = data;
    }
});

不能操作相同类型的数据!你需要json_encode php数组

echo json_encode($arr2);

,以便在JS函数

中获取它作为数组

不能只是回显。这可能就是你想要做的

$arr2 = array("Saab", "Volvo", "BMW", "Toyota");
echo json_encode($arr2);

然后在Javascript方面,使用$.getJSON()