所选行的值“ID”未在AJAX JQUERY上进行解析

时间:2014-01-02 23:44:13

标签: javascript php jquery html ajax

我有一个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编辑到我的最新版本

1 个答案:

答案 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 () {
}