2012-10-29 2 views
0

Im используя JQuery Ajax, чтобы отправить некоторые данные в файл PHPАякса данных строка не является массивом

$.ajax({ 
      type: 'GET', 
      url: 'dosomething.php', 
      data: {list:orderNew} 
      }); 

Который посылает это в PHP

$list = $_GET['list']; 

печать $ список дает мне это :

list[4]=null&list[1]=null&list[2]=4&list[12]=null&list[11]=null&list[3]=null 

Я надеялся получить его как массив, так что я мог бы сделать это на моем файле PHP

foreach($list as $key => $value) { 
      if($value == "null"){ 
       $value = 0; 
      } 
} 

Как отправить данные списка [] как фактический массив, так что php читает его как массив или превращает строку в массив, чтобы я мог сделать свой foreach на моей php-странице?

+3

[использование] (HTTP: //www.php. net/manual/en/function.json-encode.php) [JSON] (http://api.jquery.com/jQuery.getJSON/). – Blazemonger

+0

Что такое 'OrderNew'? – Musa

+0

Использовать ['parse_str'] (http://www.php.net/manual/en/function.parse-str.php) – air4x

ответ

1

Попробуйте

parse_str($list, $arr); 
print_r($arr); 

Выходы

Array 
(
    [list] => Array 
     (
      [4] => null 
      [1] => null 
      [2] => 4 
      [12] => null 
      [11] => null 
      [3] => null 
     ) 

) 
+0

ok, так как можно сделать мой php foreach работать сейчас, чтобы я мог получить $ key и $ value? – user520300

+0

Используйте 'foreach ($ arr ['list'] как $ key => $ value) {'. – air4x

-1

вы должны использовать jsonencode на ServerSide, а затем JN клиента:

$.ajax({ 
      type: 'JSON', 
      url: 'dosomething.php', 
      data: {list:orderNew} 
      }); 
+0

если я меняю тип на JSON, то что я ставлю в качестве своего php? – user520300

+0

Это для изменения того, что возвращается сервером, оно не имеет ничего общего с тем, что отправляется на сервер. Это также синтаксически неверно, потому что тип: должен быть «POST» или «GET» (или любой другой действующий), вы, вероятно, имели в виду «dataType» –

Смежные вопросы