У меня есть 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, и я не могу получить другую строку
как я могу передать эти 4 строки в php и установить эти 4 переменные в javascript
благодаря;
Кодируйте их как 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) ));
Используйте json_encode на стороне php и передайте данные таким образом 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 String самостоятельно и вместо этого используйте json_encode
PHP:
$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]' }";
Хотя вы могли бы просто передать их как реальные массивы, удалив цитаты.