问题描述
我在我的应用程序中有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;
而我的javascript代码是
$.ajax({
type: "POST",
dataType: "json",
url: "loaddata.php",
success: function(data)
{
alert(data); //alert 15,54,18,27
}
});
我只能得到$ a4字符串,而我不能得到其他字符串
我如何在php中传递这4个字符串并在javascript中设置这4个变量
谢谢;
1楼
icktoofay
5
已采纳
2010-07-04 07:59:13
将它们编码为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)
));
2楼
tsgrasser
1
2010-07-04 07:56:57
在php端使用json_encode并将数据以这种方式传递回
3楼
spinon
0
2010-07-04 07:54:33
return "{ A1: '[10,20,13,14]', A2: '[17,15,14,16]', A3: '[18,24,16,17]', A4: '[15,54,18,27]' }";
尽管您也可以通过删除引号将它们作为实际数组传递。
4楼
turbod
0
2010-07-04 07:56:19
使用serialize()方法。 在输入字段中传递变量,然后:
$.post("loaddata.php", $("#ajaxform").serialize(), function(data){
//
});
5楼
jigfox
0
2010-07-04 08:11:10
$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]}