无法删除或发送数据到php

时间:2016-07-22 03:26:52

标签: jquery jquery-ui

我无法将ID发送到PHP以删除该行,我收到此错误

  

TypeError:' checkValidity'调用了一个没有实现的对象   interface HTMLButtonElement。

如果我这样做脚本

jQuery(document).on("click",".del_beneficiaries",function(){
            var id = jQuery(this);
            jQuery.ajax({
                type: "POST",
                dataType: "json",
                url: "ben_del.php",
                data: {
                    "id" : id
                }
            });
        });

但如果执行此脚本,则他们的数据不会发送到我的PHP

jQuery(document).on("click",".del_beneficiaries",function(){
            var id = [];
            jQuery(".beneficiaries_rows").each(function(){
                var rows = jQuery(this).attr("data-id");
                id.push(rows);
            });
            jQuery.ajax({
                type: "POST",
                dataType: "json",
                url: "ben_del.php",
                data: {
                    "id" : id
                }
            });
        });

如果我使这个脚本仍然没有数据发送到PHP

jQuery(document).on("click",".del_beneficiaries",function(){
            var id = [];
            jQuery(".data-id").each(function(){
                var rows = jQuery(this).closest(".beneficiaries_rows");
                id.push(rows);
            });
            jQuery.ajax({
                type: "POST",
                dataType: "json",
                url: "ben_del.php",
                data: {
                    "id" : id
                }
            });
        });

这是 HTML

<table style="border: 2px solid black;margin:auto;">
    <tr>
        <th width="100%"><center>Name<center></th>
        <th><center>Action</center></th>
    </tr>
    <?php
        while($row1 = mysql_fetch_array($result1)){
        echo "<tr class='beneficiaries_rows' id='".$row1['id']."' value='".$row1['ben_id']."'>";
        echo "<td>".$row1['name']."</td>";
        echo "<td>";
        echo "<center><button class='del_beneficiaries'>X</button><center>";
        echo "</td>";
        echo "</tr>";
        }
    ?>
</table>

3 个答案:

答案 0 :(得分:1)

您需要通过其类引用tr元素,然后检索id。我建议你阅读jquery文档[http://api.jquery.com/]。 此外,您可以在代码中使用$而不是JQuery。 也许这是一个功课,我无法为您提供完整的解决方案。

提示:$(&#39; .class&#39;)。attr(...

答案 1 :(得分:1)

您正在将JQuery的click事件用于不同的类(del_beneficiaries),并且您的删除ID存储在不同的类(beneficiaries_rows)中。我使用HTML和静态数据以及你的First JS Script获取ID以删除行。

您的HTML:

<table style="border: 2px solid black;margin:auto;">
<tr>
    <th width="100%"><center>Name<center></th>
    <th><center>Action</center></th>
</tr>
<?php
    //while($row1 = mysql_fetch_array($result1)){
    echo "<tr class='beneficiaries_rows' id='1' value='22'>";
    echo "<td>".'Ravi'."</td>";
    echo "<td>";
    echo "<center><button class='del_beneficiaries'>X</button><center>";
    echo "</td>";
    echo "</tr>";
    //}
?>

你的剧本:

<script   src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script>
jQuery(document).on("click",".del_beneficiaries",function(){
        var id = jQuery('#1').attr('value'); 
        alert(id);
        jQuery.ajax({
            type: "POST",
            dataType: "json",
            url: "ben_del.php",
            data: {
                "id" : id
            }
        });
    });

答案 2 :(得分:0)

我得到了答案,我需要首先调用行并给它一个ben_id(主键)就像这样

jQuery(document).on("click",".del_beneficiaries",function(){
            var row = jQuery(this).closest(".beneficiaries_rows"); //call the rows
            var id = row.attr("data-id"); //give the rows the specific ben_id
            jQuery.ajax({
                type: "POST",
                dataType: "json",
                url: "ben_del.php",
                data: {
                    "id" : id
                }
            });
        });