Ajax只加载第一条记录
Ajax only loading first record?
此函数用于在传递$_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查询创建一个客户列表,记录循环内部是一个隐藏的输入字段与主键。对我错过了什么有什么想法吗?我想也许可以解绑定click,但那也不起作用。
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>
帮助!提前感谢!
问题是#form
内容在每个load
上得到替换。
我的解决方案:
你可以在#form
中创建一个新元素,例如<p>
,并将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}));
});
});
这是event delegation
的问题,更改
$("#record").click(function(){
});
$(document).on("click","#record",function(){
});
主要是确保你只有一个id
作为record
在你的页面
你应该张贴你的html代码,以帮助我们帮助你…如果添加了新的dom元素,在其上附加动作的脚本将无法工作,因为它们在脚本加载时不存在。切换到:
$(document).on("action","element",function()
相关文章:
- 在检索到最后一条记录后从 PostgreSQL 中提取记录
- 子网格:限制用户仅选择一条记录
- CSS悬停在JQuery循环的最后一条记录中不起作用
- 数据中的一条记录使用浮动图时未创建饼图
- “自动完成”文本框未前进到下一条记录
- 如何使用 JavaScript 函数在 JSP 中使用按钮移动到数据库的最后一条记录
- 剑道网格在删除后仍显示最后一条记录
- 如何使用angularJs/Javascript/Jquery获取表的最后一条记录并更新列值并插入到具有新记录的同一列
- 角度拼接函数删除另一条记录而不是实际选择的记录
- Jquery在“下一条记录”上加载当前选项卡
- 数据存储在ember中只返回一条记录
- Ember data find()方法返回数组,但我需要一条记录
- 在服务器不知道查询的是哪条记录的情况下,查询服务器是否存在一条记录
- php . .使用文本文件在分号表中插入(追加)一条记录
- 使用angularjs更新一条记录
- 使用sequelize获取下一条记录
- MongoDB确定一条记录是否会通过findOne
- 创建“下一条记录/上一条记录”按钮
- 在Ember.js中创建并读取一条记录
- 带有最后一条记录的While循环