2014-02-20 2 views
0

Я просмотрел несколько сообщений, но, похоже, не работает, что я сделал неправильно, мне нужно работать с JSON для inport в базу данных, но он говорит, что мои опубликованные города не проходят?Ajax Pass Json to PHP

Javascript

 console.log(jsonData); 
     $.ajax({ 
      url: "ajax.php", 
      type: "post", 
      data: jsonData, 
     datatype: 'json', 
      success: function(jsonData){ 

       $('#result').html(jsonData); 

      }, 
      error:function(){ 
       alert('ajax failed');  
      } 
     }); 
} 

ajax.php

$obj = json_decode($_POST['cities']); 

print_r($obj); 

Ошибка:

Примечание: Undefined индекс: города ajax.php на линии 3

Console Log для Json

{ "currentCity": "Эксетер", "города": [{ "Имя": "Эксетер", "предложения": [{ "предложение": "тест" , "цена": "11", "ноты": "100", "город": "Эксетер"}]}]}

+1

Существует нет 'города' в форме post. '$ var_dump ($ _ POST);' –

+0

Как мне получить города? – Brent

ответ

6

Ну, во-первых, datatype должен быть dataType. Обратите внимание, что это следует за номенклатурой нижнего верблюда.

Во-вторых, $_POST['cities']; не будет работать, потому что это ключ в объекте JSON, а не ключ к идентификатору сообщения. Что вам нужно сделать, это передать его как, data: {'json' : jsonData}, то вы можете сделать:

$obj = json_decode($_POST['json']); 
print_r($obj['cities']); 

редактировать

Таким образом, ваш Ajax вызов будет выглядеть следующим образом:

$.ajax({ 
    url: "ajax.php", 
    type: "post", 
    data: { 
     "json" : jsonData 
    }, 
    dataType: 'json', 
    success: function(jsonData){ 
      $('#result').html(jsonData); 
    }, 
    error:function(){ 
     alert('ajax failed');  
    } 
}); 
+0

Можете ли вы немного подробнее рассказать о {'json': jsonData} Я немного смущен, но спасибо за ускорение ответа. – Brent

+0

@BrentFrench Итак, в этом случае объект JSON, который вы создали, не является идентификатором сообщения, это строка с парами значений ключа, но это не объект POST. Таким образом, мы делаем вывод, что ключ '$ _POST' -' json', поэтому мы можем его захватить, а затем мы можем расшифровать его значение. – Ohgodwhy

+0

Я понимаю, но все же не могу заставить его работать. Могли бы вы обновить сообщение с правильными изменениями? – Brent