开发者

how to pass these strings from php to javascript

i have 4 strings in my application like this that i want to pass to my js file

$a1='[10,20,13,14]';
$a2='[17,15,14,16]';
$a3='[18,24,16,17]';
$a4='[15,54,18,27]';

echo $a1.",".$a2.",".$a3."开发者_如何学C,".$a4;

and my javascriptcode is

$.ajax({
           type: "POST",
           dataType: "json",
           url: "loaddata.php",
               success: function(data)
            {
           alert(data); //alert 15,54,18,27


          }
     });

i can get just $a4 string, and i can not get other string

how can i pass these 4 strings in php and set these 4 variables in javascript

thanks;


Encode them as JSON.

On the PHP side:

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

On the JavaScript side:

$.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
    }
});

And if you want a1, a2, a3, and a4 to be arrays of numbers instead of strings containing numbers, just JSON decode the strings on the PHP side before sending them over:

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


Use json_encode on the php side and pass the data back that way http://us3.php.net/manual/en/function.json-encode.php


Use the serialize() method. Pass the variables in a input field and:

$.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;

will return

[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]

this is not a valid JSON string.

You can return an object that contains an array of arrays like this:

echo "[".$a1.",".$a2.",".$a3.",".$a4."]";
// => [[10,20,13,14],[17,15,14,16],[18,24,16,17],[15,54,18,27]]

or you can do return an object with named keys to access the different arrays.

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]}

Or even much butter: Don't build the JSON String on your own and use PHP's json_encode instead:

$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]' }";

Though you could also just pass these as actual arrays by removing the quotes.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜