此函数用于在传递$_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()