Не удается получить php эхо при использовании AJAX для экрана загрузки - PullRequest
4 голосов
/ 18 апреля 2019

, поэтому я пытаюсь сделать загрузочный экран для веб-страницы, пока выполняется php-файл, потому что php-файл извлекает данные с MYSQL-сервера, и иногда это может занять некоторое время.

Так что мой php-Файл называется «connect.php» и содержит код hhosml и НЕ требует никаких параметров при вызове.Вот простой обзор, чтобы вы поняли, что он делает.Весь файл работает, когда я не использую 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 Ответ

0 голосов
/ 18 апреля 2019

Вам не хватает аргумента data в функции success, так как эти функции обратного вызова возвращают данные, которые передаются из request_url, равного connect.php в вашем AJAX-запросе.

Попробуйте это:

success: function (data) {
    console.log(data);
    $( '.container' ).html(data);
    $( '#loading' ).hide();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...