有人可以帮助我如何从PHP传递值数组并使用AJAX检索它。我发现只是从PHP传递一个值。当我尝试传递数组的值时,我不知道如何在AJAX端接收它
这是我的PHP代码:
$success[];
$timeout[];
$fail[];
while($row1 = mysql_fetch_array($masterresult))
{
$success[]=$row1[1];
$timeout[]=$row1[2];
$fail[]=$row1[3];
}
echo json_encode(array("a"=>$success,"b"=>$timeout,"c"=>$fail));
以下是AJAX电话:
var channel;
function overall(){
$(".one").show();
$(".two").hide();
$(".three").hide();
$(".four").hide();
window['channel']="overall";
$.ajax({
type:"GET",
url:"dash2.php",
data:{channel:channel},
dataType:'json',
success:function(data){
console.log(data.a);
console.log(data.b);
console.log(data.c);
}
});
}
我应该如何将这些php数组值传递给此ajax调用?有人可以帮我处理代码
答案 0 :(得分:2)
您要做的是encode it as JSON。
$yourArray = array('asdf', 'qwer', 'zxcv');
echo 'var yourJavaScriptArray = ' . json_encode($yourArray) . ';';
这使得您的所有任意数据也可以安全地用于JavaScript。
如果您只使用AJAX执行此操作,则不需要var
部分。只需直接从json_encode()
输出。
答案 1 :(得分:2)
例如,无论是数组中的一个值还是多个值,都应始终使用:
json_encode($your_php_var)
答案 2 :(得分:0)
json_encode
你的数组在PHP端。json_decode
PHP。参考:PHP Manual
答案 3 :(得分:0)
您可以将JSON与jQuery结合使用。
<?php
$myArray = array('a', 'b');
echo json_encode($myArray);
?>
的Ajax
$.get('http://localhost/index.php',
function(data) {
var response = jQuery.parseJSON(data);
console.log(response);
}
);
在您的代码中:
var channel;
function overall(){
$(".one").show();
$(".two").hide();
$(".three").hide();
$(".four").hide();
window['channel']="overall";
$.ajax({
type:"GET",
url:"dash2.php",
data:{channel:channel},
dataType:'json',
success:function(data){
console.log(data["a"]);
console.log(data["b"]);
console.log(data["c"]);
}
});
}
答案 4 :(得分:0)
希望这个例子对你有所帮助。想象一下,如果您在html表单上有一些输入数据并需要通过AJAX发送它们,请在服务器端对它们执行一些操作,并在客户端重新获取结果并使用它做一些事情。
<form id="my_form" method="post" action="<?=$ServerSideUrl?>">
<input type="text" name="field_1" value="">
<input type="text" name="field_2" value="">
<input type="text" name="field_3" value="">
</form>
这是你的AJAX脚本,我在这个例子中使用了JQuery
$('#my_form').ajaxSubmit({
dataType: 'html',
error: function() {
alert('some error text');
},
complete: function(data) {
//data this is the result object which returned from server side
//for example you shpold alert the sum of thouse 3 field
alert(data.sum);
}
});
这是您的服务器端代码
<?
$data = array();
$data["sum"] = $_POST["field_1"] + $_POST["field_2"] + $_POST["field_3"];
echo my_json_encode($data);
return true;
?>
因此,当您的AJAX完成时,它会提醒您表单中三个字段的总和