Обновление: Первая часть этого вопроса была разрешена и обновлена ниже с помощью действующего кода. ~Невозможно получить данные из базы данных с помощью AJAX & PHP
Я работаю над приложением Javascript, и мне сложно получить вызов AJAX для работы.
Я могу успешно вставить данные в свою базу данных, используя AJAX POST & PHP, но я не могу извлечь данные из базы данных.
У меня есть приложение Javascript, который использует изображение, в настоящее время он получает это изображение от местоположения в корневой папке, как это:
img.src = 'picture1.jpg';
Вместо того, чтобы делать это, я хочу, чтобы выбрать случайное изображение из таблицу в базе данных каждый раз, когда приложение Javascript загружается.
Я создал таблицу с одним столбцом и заполнил ее адресами/местоположениями изображений, содержащимися в папке в моем корневом каталоге.
Например:
/images/00001.jpg
/images/00002.jpg
/images/00003.jpg
Это файл PHP (находится в /scripts/imagerandomizer.php) Я использую, чтобы вызвать случайный адрес изображения:
<?php
session_start();
$servername = "localhost";
$username = "myusername";
$password = "mypassword";
$dbname = "mydatabase";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sqlrandomize = mysqli_query($conn,"SELECT images FROM `images` ORDER BY RAND() LIMIT 0 , 1");
$row = mysqli_fetch_row($sqlrandomize);
header('Content-Type: application/json');
echo json_encode($row);
mysqli_close($conn);
?>
И на AJAX который инициирует слушает PHP & для эха:
function getRandomImage() {
$.ajax({
url: 'scripts/imagerandomizer.php',
data: "",
dataType: 'json',
success: function(response){
alert(response);
}});
};
Я пытаюсь к нам e предупреждение (данные);, чтобы случайно выбранное местоположение/адрес изображения отображались в окне предупреждения (просто чтобы убедиться, что он работает). Но это не работает для меня, я уверен, что я где-то ошибся, и я не уверен, является ли json
правильным типом данных для использования здесь?
Я бы хотел, чтобы возвращаемый адрес заменил текущий img.src = 'image.jpg';
, так что, когда приложение Javascript запустится, оно получит случайное изображение из раздела кода img.src =
.
Спасибо за любую помощь!
UPDATE:
Javascript теперь может корректно отображать случайный адрес (используя либо «предупреждение» или «console.log») каждый раз, когда он загружен. Последняя часть моего вопроса касается того, как файл .js читает эту строку и использует ее как местоположение изображения, которое он извлекает.
Это как моя игра настроена: У меня есть файл с именем «game.js», он содержит код, необходимый для игры, прямо сейчас, часть этого кода: img.src = 'images/image00001.jpg';
Прямо сейчас, изображение постоянно определено и не изменяется. Я пытаюсь заменить это статическое определение на рандомизированное. В основном я пытаюсь получить рандомизированный адрес, который появится после img.src =
всякий раз, когда загружается game.js.
Мне также нужно убедиться, что это событие происходит до остальной части игры.js-код запускается, так как мне нужен случайный выбранный файл изображения, который будет находиться на месте до загрузки остальной части игры. Я попытался определить img.src, включив img.src=(response)
в вызов AJAX в верхней части файла game.js, но он не загружает изображения в игру. Я думаю, что, возможно, это неправильный способ сделать это?
второй UPDATE
Привет @PHPGlue Я пытался получить эту работу в течение нескольких дней в настоящее время, но я до сих пор что-то отсутствует.
Это моя функция, чтобы захватить рандомизированное изображение, и я попытался поместить код, чтобы запустить игру в функции успеха if (img.src) {//code to run the game here}
:
Function getRandomImage() {
$.ajax({
url: 'scripts/imagerandomizer.php',
data: "",
dataType: 'json',
success: function(response){
$('#imageId').attr('src', data.image);
img.src = $('#imageId');
if (img.src) {
//code to run the game here
}
}});
};
Я определенно не хватает что-то здесь, я думаю, Я не понимаю, что вы имеете в виду правильно. Я бы очень признателен за любые советы по этому поводу и еще раз спасибо за то, что вы нашли время, чтобы посмотреть на мой вопрос!
третье обновление
Привет, мой текущий код:
function getRandomImg(gameFunc){
$.post('scripts/imagerandomizer.php', {randImg:1}, function(data){
var im = $('#imageId');
im.attr('src', data.image);
im.load(function(){
gameFunc(img.src=im);
}
}, 'json');
}
getRandomImg(function(){
javascriptgame();
});
function javascriptgame(){
//in this area I’ve placed all the code to make the game work
}
Когда вы сказали /* pass args to gameFunc here */
я вошел img.src=im
. (Я не уверен, что я правильно вас понимаю, но я думаю, что я должен определить img.src=
для игры, чтобы позвонить в этой линии?
Когда вы сказали // game code here - could also pass function name instead of Anonymous function
, я создал новую функцию под названием javascriptgame
, внутри которой я поместил код игры, а затем вызвал эту функцию в этой строке. Я не уверен, что это вы имели в виду для меня?
К сожалению, до сих пор загрузка изображения в игру еще не началась, я хочу поблагодарить вас снова за то, что нашли время, чтобы помочь мне в этом, и если бы вы могли предложить больше советов, которые были бы замечательными! Большое спасибо.
просто добавьте эту строку в свой php перед json_encode: header ('Content-Type: application/json'); –
Проверьте журналы ошибок для php и сообщите нам, есть ли там что-нибудь. – JClaspill
Привет @imranqasim & @JClaspill Я добавил '' header ('Content-Type: application/json'); '' к моему коду И я проверил папку Apache, но я не вижу никаких зарегистрированных ошибок. Он все еще не работает. – Emily