Не выводятся данные в модальное окно с помощью ajax

Ситуация такая, есть список li задач, клацаю на задачу, вызывается модальное окно, а также передается id в PHP (ajax). В PHP проверяю на существования id, если ок, то делаю запрос в бд и получаю данные. Данные с бд не выводятся в модальное окно, но зато я их вижу в панели разработчика, когда смотрю

СЕТЬ->ПЕРДВАРИТЕЛЬНЫЙ ПРОСМОТР

там я вижу данные и откуда они идут.

Не могу понять, где ошибка в скрипте.... понимаю что проблема в ajax, там я как то неправильно вывожу что ли?????

И когда делаю console.log(data.title);, то в консоли ничего?

jQuery

$(document).ready(function () {
    $.ajax({
        type: 'GET',
        url: '/index.php?route=handler',
        dataType: 'json',
        success: function (data) {
            console.log(data.title);
            $("#modal-task-input").text(data.title);
        }
    })
});

PHP

if (isset($_GET['id'])) {
    $id = (int)$_GET['id'];
    $exec = mysqli_query($connect, "SELECT * FROM `tasks` WHERE `id`='$id'");
    $outTask = [];
    while ($row = mysqli_fetch_assoc($exec)) {
        $outTask = $row['title'];
    }
    echo json_encode($outTask);
}

Модальное окно

<div class="modal" id="editTaskModal" tabindex="-1" aria-labelledby="editModalLabel" aria-hidden="true">
<div class="modal-dialog">
    <div class="modal-body">
        <input type="text" name="task" id="modal-task-input" class="content-input" value="СЮДА ВЫВЕСТИ AJAX'сом" required="required" />
    </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-close" data-bs-dismiss="modal">Отмена</button>
        <button type="submit" id="modal-btn-disable" class="btn modal-add-task-disabled" disabled>
            Добавить задачу
        </button>
    </div>
</div>

Ответы (1 шт):

Автор решения: Алексей Шиманский

Ошибок много. Как минимум вот это

$outTask = [];
while ($row = mysqli_fetch_assoc($exec)) {
    $outTask = $row['title'];
}

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

$outTask[] = $row['title'];

Но что при первом подходе, что при втором - ожидать data.title не имеет смысла, потому что в первом никакого title вообще нет, во втором тоже, но плюс к этому приходит вообще массив. Так что в текущем коде никаких title в response не может быть при всём желании. И его либо надо добавить, либо по-другому строить логику (типа перебор массива или делать data.join('')) и т.д.

А то, что находится в ответе можно спокойно с помощью ОТЛАДКИ посмотреть как на языке PHP так и на языке Javascript и в первую очередь надо смотреть содержание всей переменной

→ Ссылка