【问题标题】:Updating HTML table using Jquery & ajax使用 Jquery 和 ajax 更新 HTML 表
【发布时间】:2017-03-11 20:00:48
【问题描述】:

我想在不使用 Ajax 和 Jquery 刷新页面的情况下更新表格数据。

我知道我将需要setInterval() 方法,因为我希望向所有用户刷新表,因为多个用户可以将数据插入到数据库中,并且我想为每个用户更新表。

我已经编写了一个脚本来从表单发送数据,而无需重定向用户或刷新页面,然后将其插入数据库。

MyScript.js

$( document ).ready(function() {
    console.log( "Ready!" );
    //Submitting from data
    $("#submitForm").submit(function(e){
        if($('#fName').val() && $('#lName').val() && $('#nickname').val()) {
            $.ajax({
               type: "POST",
               url: "process.php",
               data: $("#submitForm").serialize(),
               success: function(data){
                   console.log(data); // show response from the php script.
               }
             });
         }
         else {
             alert("Please fill the fields.")
         }
        e.preventDefault();
    });
}); 

在我的process.php 文件中,我将数据插入到数据库中。

现在我有 info.php 文件,它生成包含所有数据的表,并且我有一个表单来插入新数据。

<div id="table" class="col-md-7 ml-5">
  <table class="table table-striped table-bordered table-hover table-sm">
    <thead class="thead-default">
      <tr>
        <th>#</th>
        <th>First Name</th>
        <th>Last Name</th>
        <th>Nickname</th>
        <th>User ID</th>
      </tr>
    </thead>
    <?php $user->showUsers(); ?>
  </table>
</div>

showUsers() 函数只是使用来自 SQL 的数据生成表的其他行。

我不知道如何使用 Jquery 和 Ajax 刷新表格。
我尝试使用.load() 方法,但它也会为我的表单生成html。

请帮忙。

【问题讨论】:

  • 您实际上可能在考虑这个问题。您需要在 AJAX 后端生成一个数据结构(如 JSON 格式),然后将其传回页面本身。页面本身的 jQuery 代码应该处理如何将新行插入到预先存在的表中。

标签: javascript php jquery mysql ajax


【解决方案1】:

如您所说,您可以使用 setInterval 或更好的 setTimeout,因为您希望数据的返回稍后触发新请求

var tId="";
function getInfo() {
  $.get("info.php #table",function(data) {
    tId = setTimeout(getInfo,60000);
    $("#someContainer").append(data);
  });
}
getInfo();

【讨论】:

  • 您好,我尝试了您的 sn-p,但它会从 info.php 生成整个 HTML 代码,并且在该文件中我有很多 HTML 元素,不仅仅是表格,我还有表单和 div。它将所有 HTML 内容放入我定位的 div 中。我能否以某种方式仅获取包含表格的 div 的 HTML 内容并在我的目标 div 中显示该 HTML。
  • 你的意思是 $.get("info.php #table"
  • @mlungjan 是的!我尝试了$.get("info.php #table"),但它仍然获取所有 html,而不是 id="table" 的 div 内的 html
  • 页面上可能有多个#table ID
猜你喜欢
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 2017-02-25
  • 2013-08-06
  • 1970-01-01
  • 2020-04-26
  • 2014-11-06
  • 2012-05-12
相关资源
最近更新 更多