我对如何执行AJAX请求有一个基本的想法,但我真正想要的是在获取数据后立即发送响应,而不是等待所有的mysql查询结果完成。有没有办法做到这一点?你能说出一个主意吗?
我真正想象的是例如:
当文档准备好后,客户端将发送数据库中所有列表的请求。 虽然服务器端的PHP正在获取数据,但它会将行作为json发送,然后客户端继续解析这些响应,直到服务器端无法再获取行为止。
有可能吗?如果是的话,你有什么想法吗?
答案 0 :(得分:-1)
我有一小段代码。你可能会接受!
JQuery的:
<script>
$(document).ready(function() {
view();
});
function register()
{
var f = $('#fname').val();
var l = $('#lname').val();
$.ajax({
url:'index.php/control/insert',
data :{fname : f, lname : l},
type:'post',
success:function(msg){
return view();
}
});
}
function view()
{
$.ajax({
url:'index.php/control/show',
data :{},
type:'post',
success:function(msg){
$('#table').html(msg);
}
});
}
</script>
HTML表单:
<form action="" method="post">
<table align="center" border="11">
<tr>
<td>First name</td>
<td><input type="text" name="fname" id="fname" /></td>
</tr>
<tr>
<td>Last Name</td>
<td><input type="text" name="lname" id="lname" /></td>
</tr>
<tr>
<td colspan="2"><input type="button" id="submit" name="submit" onclick="register()" value="Register"></td>
</tr>
</table>
</form>
My Controller for Mysql功能:
public function insert()
{
$sql = "INSERT INTO MyGuests (firstname, lastname) VALUES ('".$_REQUEST['fname']."', '".$_REQUEST['lname']."')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
}
}
public function show()
{
$sql = "SELECT * FROM MyGuests";
if ($data = $conn->query($sql) === TRUE) {
echo "New record created successfully";
}
echo "<br><table border='1' align='center'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";
foreach($data as $s)
{
echo "<tr><td>".$s->fname."</td>";
echo "<td>".$s->lname."</td></tr>";
}
echo "</table>" ;
}
确保代码未经过测试这是您的要求的样本,旨在通知立即调用函数。这里我在将数据插入数据库之后就调用了view()函数。