【问题标题】:Update HTML from AJAX从 AJAX 更新 HTML
【发布时间】:2018-01-15 06:28:14
【问题描述】:

我的表格被追加而不是更新。更新html的适当方法是什么。我尝试使用answer from a similar stackoverflow question,但没有成功。

这是我的网页,它使用 Bootstrap 和相关的 ajax:

<div class="bs-component">
  <table class="table table-striped table-hover ">
      <thead>
      <tr>
          <th style="font-size: 25px">Week <span id="week" style="font-size: 28px">1</span></th>
          <th>12 am - 8 am</th>
          <th>8 am - 12 pm</th>
          <th>12 pm - 4 pm</th>
          <th>4 pm - 8 pm</th>
          <th>8 pm - 12 am</th>

      </tr>
      </thead>
      <tbody>
          <script>
          function loadWeek (x) {
            $.post("weekly.php", {p: x}, function (res) {
               //$("tbody").append(res);
               $('#bs-component table > tbody:last').find('tr:first').before(res);
            });
          }
          $(function () {
            loadWeek (1);
          });
          </script>
      </tbody>
  </table>

这里是ajax调用的php回显的html

for ($i = 0; $i < 7; $i++) {
    echo "<tr><td>$weekDays[$i]</td>";
    for ($j = 0; $j < 5; $j++) {
        echo "<td><p>".$usersNames[$i][$j]."</p></td>";
    }
    echo"</tr>";
}

【问题讨论】:

  • "这里是 ajax 调用的 php 回显的 html" 那是 PHP,不是 HTML。你试过replaceWith()或replaceAll()吗?
  • @j08691 不,我没有尝试过 replaceWith() 或 replaceAll()。我将如何使用这些?

标签: php jquery html ajax html-table


【解决方案1】:

我发现您的 jQuery 代码存在一些小问题。首先,您要将&lt;script&gt; 标记移出表格。它可以在页面中的任何位置,通常位于页面底部(就在结束正文标记&lt;/body&gt; 之前)。您想要这样做的原因是,当 Ajax 响应返回时,您想要替换 &lt;tbody&gt; 的内容,这将覆盖您的 &lt;script&gt; 标记。

接下来,您要对响应执行的操作是替换 &lt;tbody&gt; 的内容(而不是追加)。我会重写你的loadWeek函数如下:

function loadWeek(x) {
  $.post('weekly.php', {p: x}, function(res) {
    $('#bs-component tbody').html(res);
  });
}

您可以在https://api.jquery.com/html/ 找到.html() 函数的文档

注意选择器略有不同 - 因为您的 &lt;div&gt; 中只有 1 个 &lt;table&gt;,而该表中只有 1 个 &lt;tbody&gt;,您不必指定最后一个 &lt;tbody&gt;是 &lt;table&gt; 的直系后代(这就是您拥有的选择器的含义)。

【讨论】:

  • 感谢@Bill-Hannah,您的解释为我提供了正确解决问题所需的所有术语。除了$('#bs-component tbody').html(res); 中的# 需要替换为.$('.bs-component tbody').html(res); 之外,它可以工作。 [链接] (w3schools.com/jquery/jquery_ref_selectors.asp) 显示. 选择 div 类,# 选择 div id。
  • 没错。我没有仔细看HTML。很高兴你可以让它工作!
猜你喜欢
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 2013-02-24
  • 2020-04-26
  • 2014-11-06
相关资源
最近更新 更多