@slowpoke59

Как правильно парсить JSON на JS/JQ?

Добрый день!

Сразу к сути:
Есть некое поле поиска, при вводе в него чего-либо отправляется ajax-запрос на страницу /ajax/xxx.php
Она же в свою очередь отдает json через json_encode, ответ может быть разным, если какая то ошибка то:

Код php:
$status = 'error';
$array = array(
	"status" => $status,
	"data" => array(
		"message" => "КАКАЯ_ТО_ОШИБКА"
	)
);


Получаемый json:
{
    "status": "error",
    "data": {
        "message": "КАКАЯ_ТО_ОШИБКА"
    }
}


А если нашлось совпадение в БД то:

Код php:
$k = 1;
$array = array();
while ($row = $result->fetch_assoc()) {
	$array[$k] = array(
		"id" => $row['id'],
		"name" => $row['name']
	);
	$k++;
}


Получаемый json:
{
    "1": {
        "id": "1",
        "name": "1"
    },
    "2": {
        "id": "2",
        "name": "1"
    }
}


Вот сам ajax-запрос:
function search() {
var data = {
	search: $('#search').val()
}
$.ajax({
	type: 'POST',
	dataType: 'json',
	url: '/ajax/xxx.php',
	data: data,
	success: function(data) {
		search_answer(data);
	}
});
};


А вот функция, которая "разбирает" ответ:
function search_answer(res) {
// вывод найденной информации
if (res.status == 'error') {
	if (res.data.message == 'ERROR_2') {
		$(".error").text("ERROR_2");
	}
	if (res.data.message == 'ERROR_1') {
		$(".error").text("ERROR_1");
	}
}
};


Понимаю что лютый быдлокод, но прошу помощи, никак не могу понять как вывести полученные результаты.

UPD. Если получили id и name то нужно вывести их в див с классом answer. Как я понимаю нужен цикл чтобы перебрать полученный массив, но не могу понять как его составить.
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ответы на вопрос 1
BRAGA96
@BRAGA96
Вместо dataType: 'text' вставить dataType: 'json' и в теле функции success не нужно JSON.parse()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы