#php #html #ajax #echo
#php #HTML #ajax #эхо
Вопрос:
поэтому я пытаюсь создать загрузочный экран для веб-страницы во время выполнения php-файла, потому что php-файл извлекает данные с сервера MYSQL, и это может занять некоторое время. иногда.
Итак, мой php-файл называется «connect.php » и повторяет html-код и НЕ требует никаких параметров при вызове. Вот простой обзор, чтобы вы поняли, что он делает. Весь файл работает, когда я не использую AJAX и просто включаю его в обычном режиме.
<?php
if (!$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') die('Invalid request');
//MYSQL-Connection
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo //// Some HTML Code
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
И есть мой index.php где я использую AJAX для вызова php-файла:
<section id="intro" class="wrapper style1">
<style>#loading { display:none; }</style>
<div id="loading">Test</div>
<div class="container">
<span>
<script>
$( '#loading' ).show();
$.ajax( {
url: 'connect.php',
type: 'POST',
dataType: 'html',
success: function () {
$( '.container' ).html();
$( '#loading' ).hide();
},
error: function () {
alert( "Something went wrong!" );
}
} );
</script>
</span>
</div>
</section>
Таким образом, консоль не выдает никаких ошибок и в течение короткого времени (когда php загружается, на экране выводится слово «Test», но затем ничего не происходит, и я не знаю почему. И, как я уже сказал, когда я включаю php-файл, подобный этому <?php include_once('getcelebration.php'); ?>
, все работает просто отлично.
Комментарии:
1. Добро пожаловать в Stack Overflow. Мы видим много вопросов от новых участников, и часто им не хватает большого количества информации. У вас нет. Отличный вопрос! Ваша проблема в том, что вы не обрабатываете полученные данные
success
. Смотрите: api.jquery.com/jquery.ajax Обратите внимание наdata
аргумент в функции.
Ответ №1:
Вам не хватает data
аргумента в success
функции, поскольку это функции обратного вызова, они возвращают данные request_url
, которые передаются connect.php
из вашего запроса AJAX.
Попробуйте это:
success: function (data) {
console.log(data);
$( '.container' ).html(data);
$( '#loading' ).hide();
}
Комментарии:
1. Как насчет фактического помещения HTML в контейнер?
2. Да, извините, пропустил это.
3. Нет проблем. Теперь Sigmar должен иметь возможность работать с этим.