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.
精彩评论