Здравствуйте! Очень странная проблема.
Есть массив созданный в цикле:
PHP:
foreach ($tags as $one_tag){
if(stristr($one_tag, $tag) !== false){
$tags_array[] = $one_tag;
}
}
$result = array_unique($tags_array);
По сути тоже самое, что ручками его прописать $result = array ("dsd", "ddd, "fdf");
Этот массив я кодирую в JSON
$json_data = array ('query'=>$tag,'suggestions'=>$result);
echo json_encode($json_data);
Сразу же после получения данных в javascript стоит alert с полученными данными:
$.ajax({
url: options.serviceUrl,
data: options.params,
type: options.type,
dataType: options.dataType
}).done(function (data) {
alert(data);
that.processResponse(data, q);
options.onSearchComplete.call(that.element, q);
});
И тут начинается самое увлекательное. Если массив получен в цикле, в алерте я получаю {"query":null,"suggestions":null}
Если массив прописываю ручками как тут: $result = array ("dsd", "ddd", "fdf");
То в алерте получаю {"query":null,"suggestions":["dsd","ddd","fdf"]}
При этом если просто обратиться к php скрипту напрямую, в обоих случаях я имею абсолютно одинаковые строчки:
{"query":"d","suggestions":["dsd","ddd","fdf"]}
Возможно кто-то знает в чем проблема? Где разница между массивом созданным в цикле и массивом набранным руками? При том, что при прямом обращении показывает абсолютно одинаковые строки. Может быть для JSON есть разница каким образом создан массив?
Заранее спасибо!
Тому, кто поможет разобраться - флакончик хорошего алкоголя)