如何将这些字符串从php传递给javascript

我在我的应用程序中有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个变量

谢谢;

将它们编码为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 } }); 

如果你想让a1a2a3a4成为数字数组而不是包含数字的字符串,那么在发送它们之前,只需JSON解码PHP端的字符串:

 echo json_encode(array( "a1" => json_decode($a1), "a2" => json_decode($a2), "a3" => json_decode($a3), "a4" => json_decode($a4) )); 

在php端使用json_encode并以这种方式传回数据http://us3.php.net/manual/en/function.json-encode.php

使用serialize()方法。 在输入字段中传递变量,并:

 $.post("loaddata.php", $("#ajaxform").serialize(), function(data){ // }); 
 $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]} 
 return "{ A1: '[10,20,13,14]', A2: '[17,15,14,16]', A3: '[18,24,16,17]', A4: '[15,54,18,27]' }"; 

虽然你也可以通过删除引号将它们作为实际数组传递。