使用AJAX加载屏幕时无法接收php echo

时间:2019-04-18 10:25:13

标签: php html ajax echo

所以我试图在执行php文件的同时为网页做一个加载屏幕,因为php文件是从MYSQL Server提取数据的,有时可能需要一段时间。

所以我的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 个答案:

答案 0 :(得分:0)

您在data函数中缺少success参数,因为这些是回调函数,它们返回从request_url(即您的connect.php)传递的数据AJAX请求。

尝试一下:

success: function (data) {
    console.log(data);
    $( '.container' ).html(data);
    $( '#loading' ).hide();
}