Не выводятся данные в модальное окно с помощью 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 и в первую очередь надо смотреть содержание всей переменной