Я просмотрел много сообщений на этом форуме и все еще имею проблемы, не могу обойти его.Борьба с json_decode
я retreiving страницу PHP через AJAX, который вывешивать JSon объект:
$.ajax({
url: myUrl,
data: sendData,
type: "POST",
error: function(xhr, statusText, errorThrown){
// Work out what the error was and display the appropriate message
},
success: function(data){
// data retrived ok
var myData = data;
// do something with data
}
});
мой JSON, как это (генерируется с JS):
{"borough": {"id": "3"}, "cat":{"id": "5", "id": "47", "id": "98"}}
с использованием поджигатель я hecked и его получение прошло через
моя проблема с php, я не могу получить данные json_decoded.
<?php
$catPost = $_POST['cat'];
echo($catPost);
$catData = json_decode($catPost, true);
var_dump($catData);
?>
эхо-оператор печатает из [объект Object]
но и var_dump печатает пустые
, что я делаю неправильно? как мне получить доступ к значениям «id» diffirent в данных ????
любая помощь очень оценен.
тестовой страницы можно увидеть на http://http://www.reelfilmlocations.co.uk/NEW Search/fullsearch_jq.php
Инструкция по тестированию: (использование ЬЬеТехЬ «Расширенный поиск» под выберите категорию раскрывающегося списка, чтобы выполнить АЯКС вызов также выбрать местечко и somecategories topopulate объект JSON с некоторые данные
РЕДАКТИРОВАТЬ:
JSON создается с помощью следующего скрипта, который считывает значения выбранной Tages из массива:
var sendData = {"borough":[], "cat":[]};
//alert('borough tagger add '+BoroughTagger.myIdArray[intIndex]);
sendData.borough.push({"id":BoroughTagger.myIdArray[intIndex]});
$.each(CatTagger.myIdArray, function(intIndex, objValue) {
alert('cat Tagger add '+CatTagger.myIdArray[intIndex]);
sendData.cat.push({"id":CatTagger.myIdArray[intIndex]});
});
, который будет создавать объект JSON, как следующее: (проверил это в fiebug)
{"borough": {"id": "3"}, "cat":{"id": "5", "id": "47", "id": "98"}}
Я теперь с помощью stringData = JSON.stringify(sendData)
для передачи данных через AJAX но доцент, похоже, любое имя в post, строка есть, но если я ссылаюсь на нее, используя $myData = $_POST;
, то echo «ArrayArray» ошибки json_decode с: Warning: json_decode() ожидает, что параметр 1 будет строкой, массив указан в D: \ wamp \ www \ ReelFilm \ NEW Поиск \ getAdvSearch.php в строке 7
так как мне получить вызов ajax для присвоения имени отправленным sata, чтобы я мог получить к нему доступ, используя $_POST['myData']
Это копия пасты? {"id", "3"} должно быть {"id": "3"} - двоеточие не coma :) возможно, это проблема? –
Вы кодируете его как строку или отправляете непосредственно объект JSON как есть в javascript? –
@tom tu, json на самом деле сгенерирован скриптом, который я набрал это, использует: заменит вопрос, чтобы отразить это. –