当前位置: 代码迷 >> JavaScript >> 如何将这些字符串从php传递到javascript
  详细解决方案

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

热度:15   发布时间:2023-06-05 11:55:55.0

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

谢谢;

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

在php端使用json_encode并将数据以这种方式传递回

return "{ A1: '[10,20,13,14]', A2: '[17,15,14,16]', A3: '[18,24,16,17]', A4: '[15,54,18,27]' }";

尽管您也可以通过删除引号将它们作为实际数组传递。

使用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]}
  相关解决方案