我有一个HTML表格,其中使用PHP从数据库中检索数据,因此我使用循环来回显行。这创建了我尝试使用AJAX检索正确ID的初始问题。我被建议使用类创建我的JQUERY代码我不知道我做错了什么。
我的目标: 我试图将选定行的ID解析为我的jquery代码,然后解析成第二个PHP脚本。
这是我的HTML表格代码:
<form id="mainform" >
<table id="table1">
<?php
$result = mysql_query("SELECT * FROM test");
while ($row = mysql_fetch_array($result))
{
$ID = $row['ID'];
echo "<tr data-rows='$ID'><td>$ID</td>";
echo "<td><input type='hidden' class='hf' value='$ID' /></td>";
echo "<td><input type='button' class='abc' value='select' /></td></tr>";
}
?>
</table>
</form>
这是我的JAVASCRIPT代码:
<script>
$( document ).ready(function() {
$(".abc").each(function(){
var btn = $(this);
btn.on("click",function(){
$("#newdiv").empty();
var rowId = $(this).closest('tr').attr('data-row');
$('.hf').each(function(){
$.get("boom.php", { ID: rowId } ,function(data) {
$("#newdiv").append(data);
});
});
});
});
});
</script>
我不知道哪里出错了?
我将CODE编辑到我的最新版本
答案 0 :(得分:0)
转换此行
echo "<tr><td>".$ID."</td></tr>";
对此:
echo "<tr data-row='$ID'><td>$ID</td>";
然后,在你的javascript中,使用jQuery的强大功能在你的onClick处理程序中找到该属性。
btn.on("click",function() {
var rowId = $(this).closest('<tr>').attr('data-row');
}
变量rowId现在应该匹配您所在的行。从那里你可以在你的AJAX调用中传递它。
编辑:你的jQuery each()函数也有不匹配的选择器。
$("#abc").each(function(){
}
但是在HTML中,按钮没有ID选择器,只有一个类。将该行更改为:
$('.abc').each(function () {
}