another_dream
@another_dream
Backend-разработчик, Laravel/ZF2/Yii2

Как правильно обработать jQuery AJAX результат?

Добрый вечер. Есть AJAX скрипт, который отправляет в PHP скрипт некоторые данные, которые используются для запроса в базу данных. После запроса получаю ассоциативный массив(fetch_array()). Как правильно вернуть результат в jQuery, чтобы в дальнейшем массив можно было обработать с помощью foreach?
Вот примерный код:
jQuery.Ajax
date = "2014-05-21";
        jQuery.ajax({
            type: "POST",
            url: "/function/checkTime.php",
            data: ({date:date}),
            dataType:"text",
            success: 
       // Code;

PHP
// Собираем дату;
$date = $_POST['date'];
//Запрос к базе;
$times= $sql->query("SELECT * FROM datetime WHERE date='$date'")->fetch_array();

Спасибо.
  • Вопрос задан
  • 5723 просмотра
Решения вопроса 3
pavel_salauyou
@pavel_salauyou
Symfony2 & Angular разработчик
jQuery.ajax({
            type: "POST",
            url: "/function/checkTime.php",
            data: ({date:date}),
            dataType:"json",
            success:  function(response) {
              // тут обрабатываем
            }


// Собираем дату;
$date = $_POST['date'];
//Запрос к базе;
$times= $sql->query("SELECT * FROM datetime WHERE date='$date'")->fetch_array();

echo json_encode($times);


PS "SELECT * FROM datetime WHERE date='$date'" - это небезопасный запрос, можно внедрить sql injection
Ответ написан
@andreyqin
Можно вернуть в формате JSON:
echo json_encode($times);

$.ajax({
    type: 'POST',
    url: '/function/checkTime.php',
    data: ({date: date}),
    dataType: 'json',
    success: function(data) {
        /* тут обрабатываете ответ */
    }
});
Ответ написан
another_dream
@another_dream Автор вопроса
Backend-разработчик, Laravel/ZF2/Yii2
echo json_encode($times);
jQuery.ajax({
            type: "POST",
            url: "/function/checkTime.php",
            data: ({date:date}),
            dataType:"text",
            success: function(data) {
                console.log(data);
    }
});

Сервер вернул:
{"0":"1","id":"1","1":"2014-05-24","date":"2014-05-24","2":"16:00","time_start":"16:00","3":"17:00","time_end":"17:00"}

Как теперь можно обратиться к определенному элементу в этом массиве/объекте? К примеру, alert(data.id) -- не срабатывает :(
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы