Php Jquery数组不是';当json回调时,没有更改
我希望在触发click事件时将arr1值更改为arr2值(test.php)。但是,以下代码中存在错误 有人能帮我吗?谢谢Php Jquery数组不是';当json回调时,没有更改,php,jquery,Php,Jquery,我希望在触发click事件时将arr1值更改为arr2值(test.php)。但是,以下代码中存在错误 有人能帮我吗?谢谢 $(function(){ var arr1 = ["apple","banana","orange"]; $("input").click(function(){ $.ajax({ type:"post",
$(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");
?>
您不能操作相同类型的数据!您需要对php数组进行json_编码
echo json_encode($arr2);
为了在JS函数中将其作为数组提取,您不能只进行echo。这就是你可能想要做的
$arr2 = array("Saab", "Volvo", "BMW", "Toyota");
echo json_encode($arr2);
然后在Javascript方面,使用。您需要使用将复杂对象传输到Javascript。在php中,您可以使用以下代码对数组进行编码:
<?php
$arr2 = array("Saab","Volvo","BMW","Toyota");
echo json_encode($arr2);
?>
$.ajax({
type: "post",
url: "test.php",
dataType: "json",
cache: false,
success: function(data) {
arr1 = data;
}
});
单凭这一点是行不通的,毕竟这只是一根绳子。您仍然需要对其进行解码。只需在JS端添加数据类型:“json”以确保您的Operate json返回,并且它已经是success函数中准备进行操作的数组
getJSON()
在这里的一般情况下不起作用。对于他的“test.php”来说,它会的,但这只是一个例子。看起来他是在发出一个POST
请求,而不是GET
请求getJSON()
只执行GET
请求。您必须在这里将ajax()
与dataType:'json'
一起使用。虽然可能是这种情况,但在这种情况下使用POST
是否有意义仍然值得怀疑,不是吗?这只是请求一个资源。在本例中,您不会使用POST,但我假设这只是一个最小的测试用例。如果实际情况是GET,则任何一种方法都可以工作。自复制