【问题标题】:Ajax only loading first record?Ajax 只加载第一条记录?
【发布时间】:2015-10-12 17:20:57
【问题描述】:

此函数适用于在传递 $_POST 变量的 div 内加载外部页面,单击适用于从查询中加载具有 $_POST 变量的同一外部页面的第一条记录。

 $(document).ready(function(){
// load index page when the page loads
$("#form").load("tm-reserves-form.php");
$("#record").click(function(){
// load home page on click
    var ContactID = document.getElementById('ContactID').value;
    $("#form").load("tm-reserves-form.php", {"ContactID": ContactID});
    });
});

不起作用的是这似乎只传递了第一个记录变量而没有传递其他变量。我可以单击第一条记录和加载数据的外部页面。我点击其他记录,div 没有从点击加载新数据。我有一个从 mysql 查询创建客户列表的页面,在记录循环内是一个带有主键的隐藏输入字段。对我所缺少的有什么想法吗?我想也许可以取消绑定点击,但这也没有用。

HTML 代码

<div id="record"><?php do { ?><input type="hidden" name="ContactID" id="ContactID" value="<?php echo $row_tm_reserves['ContactID']; ?>"><!-- Other strings --><?php } while ($row_tm_reserves = mysql_fetch_assoc($tm_reserves)); ?></div>  

帮助!并提前致谢!

【问题讨论】:

  • 您不能在同一页面上反复使用同一个 ID。切换到课程。
  • 每条记录上都有id=ContactID 吗?在有效的 HTML 中,您应该有唯一的 ID,其他任何东西都可能导致问题。
  • @Ohgodwhy - 不错!这和使用 getElementsByClassName 一样简单吗?
  • @DerekManson 的 id 在页面中是唯一的吗??

标签: javascript php jquery mysql ajax


【解决方案1】:

问题是#form 的内容会在每个load 上被替换

我的解决方案:

您可以在#form 中创建一个新元素,例如&lt;p&gt;,并为其创建append,即:

$(document).ready(function(){
$("#form").load("tm-reserves-form.php");
$(document).on("click","#record",function(){
    var ContactID = document.getElementById('ContactID').value;
    $("#form").append($(document.createElement("p")).load("tm-reserves-form.php", {"ContactID": ContactID}));
    });
});

【讨论】:

  • 您的解决方案揭示了一个新问题,似乎第一条记录 ContactID 是唯一被加载到外部页面中的记录。
  • 现在要找出...为什么?
  • tm-reserves-form.php 的返回值是多少?没有完整的代码,我很难看到全局。
  • 这只是一个带有 $_POST['ContactID'] 回显的测试页面
【解决方案2】:

这是event delegation的问题,改

$("#record").click(function(){

});

$(document).on("click","#record",function(){

});

主要确保您的页面中只有一个id 作为record

【讨论】:

    【解决方案3】:

    您应该发布您的 html 代码,以帮助我们帮助您... 如果添加了新的 dom 元素,附加动作的脚本将不起作用,因为它们在该脚本的加载时不存在.. 切换到:

    $(document).on("action","element",function()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-11
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多