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

问题描述 投票:4回答:1

因此,当php文件从MYSQL服务器获取数据并且有时可能需要一段时间时,我试图在执行php文件的同时为网页执行加载屏幕。

所以我的php-File被命名为“connect.php”和echos 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加载单词“测试”被打印在屏幕上,但没有任何反应,我不知道为什么。就像我说,当我包括像php文件时这个<?php include_once('getcelebration.php'); ?>一切正常。

php html ajax echo
1个回答
0
投票

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

试试这个:

success: function (data) {
    console.log(data);
    $( '.container' ).html(data);
    $( '#loading' ).hide();
}
© www.soinside.com 2019 - 2024. All rights reserved.