Я совершенно новый для мира AJAX. У меня есть база данных Mysql, содержащая столбец с URL-адресами. Моя конечная цель состоит в том, чтобы нагрузка по клику загружала iframe с уникальным URL-адресом из базы данных. Если у кого-то есть лучшая методология, пожалуйста, дайте мне знать.Что не так с моим кодом AJAX
Сейчас я просто пытаюсь выяснить, как работает AJAX, пытаясь получить URL-адреса. Я прикрепил свой код Javascript и свой PHP-код.
Код PHP выводит кодированную json копию данных. Однако javascript сообщает, что переменный результат не определен. Я думаю, что это может иметь отношение к «асинхронной» стороне AJAX, но я следовал этому руководству, чтобы попытаться правильно работать с кодом. Я ценю любую помощь, которая может быть предоставлена.
How do I return the response from an asynchronous call?
Вот мой код Javascript код он записывает результаты неопределен и «Я сделал это» в консоли
function retrieve_callback(result) {
console.log (result);
console.log("I made it!");
};
function retrieveURL (retrieve_callback) {
$.getJSON({
url: './fetch.php',
dataType: 'json',
success: retrieve_callback
});
}
//Runs when our document initializes
$(document).ready(function() {
retrieveURL(retrieve_callback());
});
Вот мой PHP код он выводит массив JSON из URL,
<?php
//--------------------------------------------------------------------------
// Connect to mysql database (I've removed the info from this example but it works)
//--------------------------------------------------------------------------
$db = new mysqli($DB_HOST, $DB_USER, $DB_PASSWORD, $DB_NAME);
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
//--------------------------------------------------------------------------
// Query mysql database
//--------------------------------------------------------------------------
$links = array();
//SQl query
$sql = <<<SQL
SELECT `Gnews_url`
FROM `Gnews_RSS`
SQL;
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
array_push($links, $row);
}
echo json_encode($links);
Спасибо йо u, это, однако, открывает новую проблему.Мой запрос не вызывает функцию успеха. Я добавил ошибку, чтобы отладить ее, но также не выводил никакой информации. Похоже, что запрос висит. Еще раз спасибо за помощь. – Jesse
Возможно, ваш PHP что-то испортил, я не слишком знаком с ним. Добавьте «сбой: retrieve_callback» после успеха и посмотрите, запускается ли это. –
Я добавил функцию сбоя, чтобы просто предупредить («Я испортил») и console.log («Я испортил»). Все еще нет выхода из функции успеха, ошибки или сбоя. – Jesse