因此,当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'); ?>
一切正常。
您在data
函数中缺少success
参数,因为这些是回调函数,它们返回从您的AJAX请求中的request_url
传递的connect.php
数据。
试试这个:
success: function (data) {
console.log(data);
$( '.container' ).html(data);
$( '#loading' ).hide();
}