如何延迟Ajax请求?

朱利安

我有一个表单,该表单将数据发布到服务器端页面,该页面将数据插入到mysql数据库中,然后执行数据库的行计数,结果返回到表单页面,然后在其中显示。

我正在使用ajax来获取行计数数据,并且我想知道是否可以将Ajax调用延迟到将数据插入数据库中之后,以便我可以获得包括刚提交的数据在内的准确行计数吗?当前代码有效,但仅显示提交表单之前的行数。我必须重新加载页面才能获得真实的结果。

Form.php

<form class="form-inline" action="" id="myform" form="" method="post">
 <!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="name"></label>  
  <div class="col-md-8">
  <input id="name" name="name" type="text" placeholder="name" class="form-control input-lg" required>
    </div>
</div>

<!-- Button -->
<div class="form-group">
  <label class="col-md-4 control-label" for="submit1"></label>
  <div class="col-md-4">
    <button id="submitButtonId" name="submit1" class="btn btn-primary btn-xl">Submit</button>
  </div>
</div>
</form>

<div id="count"></div>
</div>

jQuery的

<script>
//Post data from form
$(document).ready(function(){
$("#submitButtonId").on("click",function(e){
  e.preventDefault();

var formdata = $(this.form).serialize();
    $.post('server.php', formdata,
           function(data){
  //Reset Form
$('#myform')[0].reset(); 
          });

return false;
});
});
</script>
<script>

//Fetch Rowcount from server.php
  $(document).ready(function(){
$.ajax({
                    url: 'data.php',
                    dataType: "json",
                    success: function (data) {
                    $("#count").html(data.count);

}
});
});
</script>

Server.php

<?php
//Connect to db
include_once("db_conx.php");
if( isset($_POST['name']) ){
$name= mysqli_real_escape_string($db_conx,$_POST['name']);

//Update Database 
$stmt = $db_conx->prepare('INSERT INTO myTable  set name=?');
$stmt->bind_param('s',$name);
$stmt->execute();
}
//Count Rows
$sql="SELECT name FROM myTable";
$query = mysqli_query($db_conx, $sql);
  // Return the number of rows in result set
  $rowcount=mysqli_num_rows($query);

// send output
$my_data=array(count=>"$rowcount");

echo json_encode($my_data,true);
?>
凯恩·维亚纳(Keyne Viana)

在第一个ajax帖子的响应中调用获取行数的ajax。

<script>
//Post data from form
$(document).ready(function(){
$("#submitButtonId").on("click",function(e){
    e.preventDefault();

    var formdata = $(this.form).serialize();
    $.post('server.php', formdata,
           function(data){
               //Reset Form
               $('#myform')[0].reset(); 
               fetchRowCount();
    });

    return false;
 });
});

function fetchRowCount() {
     $.ajax({
                    url: 'data.php',
                    dataType: "json",
                    success: function (data) {
                        $("#count").html(data.count);

                    }
     });
}
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何延迟http请求?

来自分类Dev

延迟的jquery ajax请求的顺序

来自分类Dev

处理Ajax请求中的延迟

来自分类Dev

jQuery延迟了每个循环的ajax请求

来自分类Dev

在处理之前延迟 ajax 请求 3 秒

来自分类Dev

中止先前的ajax请求但有延迟?

来自分类Dev

如何延迟ajax响应秒数

来自分类Dev

如何覆盖请求和响应之间的延迟

来自分类Dev

Angular-如何延迟HTTP请求

来自分类Dev

延迟Ajax请求完成时,jQuery逐个循环

来自分类Dev

ajax请求完成后,jQuery延迟对象解析

来自分类Dev

ajax请求完成后,jQuery延迟对象解析

来自分类Dev

延迟Ajax请求完成时,jQuery逐个循环

来自分类Dev

使用 Google Maps API 延迟每个请求的 Ajax 函数

来自分类Dev

如何解析/获取 Ajax 延迟响应

来自分类Dev

如何等待ajax请求?

来自分类Dev

如何到达先前的ajax请求

来自分类Dev

如何保护Ajax链接请求?

来自分类Dev

如何从服务发出ajax请求?

来自分类Dev

如何修复ajax调用请求

来自分类Dev

如何使用延迟的对象在多个$ .get()请求之后执行代码?

来自分类Dev

如何在python中确定GET请求的延迟

来自分类Dev

如何确定高延迟网络请求的最佳线程数?

来自分类Dev

如何避免使用API延迟github拉取请求合并

来自分类Dev

如何在Tweepy StreamListener中的每个请求之间添加延迟?

来自分类Dev

如何使用延迟的对象在多个$ .get()请求之后执行代码?

来自分类Dev

如何避免使用API延迟github拉取请求合并

来自分类Dev

延迟下载请求下载

来自分类Dev

API请求GET延迟