我的应用程序中有4个字符串,我希望传递给我的js文件
$a1='[10,20,13,14]';
$a2='[17,15,14,16]';
$a3='[18,24,16,17]';
$a4='[15,54,18,27]';
echo $a1.",".$a2.",".$a3.",".$a4;
我的javascriptcode是
$.ajax({
type: "POST",
dataType: "json",
url: "loaddata.php",
success: function(data)
{
alert(data); //alert 15,54,18,27
}
});
我只能获得$ a4字符串,而且我无法获得其他字符串
如何在php中传递这4个字符串并在javascript中设置这4个变量
感谢;
答案 0 :(得分:5)
将它们编码为JSON。
在PHP方面:
echo json_encode(array("a1" => $a1, "a2" => $a2, "a3" => $a3, "a4" => $a4));
在JavaScript方面:
$.ajax({
type: "POST",
dataType: "json",
url: "loaddata.php",
success: function(data) {
var a1=data.a1;
var a2=data.a2;
var a3=data.a3;
var a4=data.a4;
// do something with a1, a2, a3 and a4
}
});
如果您希望a1
,a2
,a3
和a4
成为数字数组而不是包含数字的字符串,那么只需JSON解码PHP上的字符串发送给他们之前的一面:
echo json_encode(array(
"a1" => json_decode($a1),
"a2" => json_decode($a2),
"a3" => json_decode($a3),
"a4" => json_decode($a4)
));
答案 1 :(得分:1)
在php端使用json_encode并以这种方式传回数据 http://us3.php.net/manual/en/function.json-encode.php
答案 2 :(得分:0)
return "{ A1: '[10,20,13,14]', A2: '[17,15,14,16]', A3: '[18,24,16,17]', A4: '[15,54,18,27]' }";
虽然您也可以通过删除引号将它们作为实际数组传递。
答案 3 :(得分:0)
使用serialize()方法。将变量传递到输入字段中:
$.post("loaddata.php", $("#ajaxform").serialize(), function(data){
//
});
答案 4 :(得分:0)
$a1='[10,20,13,14]';
$a2='[17,15,14,16]';
$a3='[18,24,16,17]';
$a4='[15,54,18,27]';
echo $a1.",".$a2.",".$a3.",".$a4;
将返回
[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]
这不是有效的JSON字符串。
您可以返回包含数组数组的对象:
echo "[".$a1.",".$a2.",".$a3.",".$a4."]";
// => [[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]]
或者你可以返回一个带有命名键的对象来访问不同的数组。
echo "{a1:".$a1.",a2:".$a2.",a3:".$a3",a4:".$a4."};
// => {a1:[10,20,13,14], a2:[17,15,14,16], a3:[18,24,16,17], a4:[15,54,18,27]}
甚至更多的黄油:不要自己构建JSON字符串并使用PHP的json_encode
代替:
$a1=array(10,20,13,14);
$a2=array(17,15,14,16);
$a3=array(18,24,16,17);
$a4=array(15,54,18,27);
echo json_encode(array($a1,$a2,$a3,$a4));
// => [[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]]
// or if you want an associative array
echo json_encode(array("a1" => $a1, "a2" => $a2, "a3"=> $a3, "a4" => $a4));
// => {a1:[10,20,13,14], a2:[17,15,14,16], a3:[18,24,16,17], a4:[15,54,18,27]}