未通过 AjaxForm/JQuery 提交表单

Form not getting submitted via AjaxForm/JQuery

有一个 table 显示项目,每行有一个 "Delete" 按钮。删除按钮位于表单内。 我正在使用 AjaxForm 方法提交表单。单击删除按钮应该删除数据,而不会定向到任何页面或不刷新当前页面。 但是发生的事情是按照操作标签上定义的常规方式提交表单。

我在 table 上按以下方式显示结果:

while($row = $result->fetch_assoc()) 
    {               
    ?>  


<tr>
  <td><?php echo  ++$x; ?></td>
  <td><?php echo $row["id"]; ?></td>
  <td><?php echo $row["title"]; ?></td>
  <td><?php echo $row["author"]; ?></td>
  <td>
  <form method="POST" id='deleteform' class="forms" action="deletebook.php">         
  <input type="hidden" name="deletebook" value='<?php echo $row["id"]; ?>' >
  <button type="submit" class="btn btn-danger btn-xs">Delete</button>
  </form>
  </td>
</tr> 


<?php
    }
}

else
{
    echo "No Books Found!";
}

way

后面显示table

要通过 AjaxForm 提交表单,操作如下:(我没有在此处显示 <table> 标签。请原谅。)

<script>
            $(document).ready(function() { 
                $('#deleteform').ajaxForm(function() { 

                    alert("success");

                }); 
                event.preventDefault();
            }); 
    </script>

问题是表单是通过常规方式提交的action="deletebook.php" 相信我,在其他页面中,表单是通过 AjaxForm 提交的。但是在这个页面中,问题出现了。

会不会是因为每个"delete"按钮都是根据table中的内容显示出来的表格。 请帮助我。

编辑: 问题不在于无法删除 data.The 数据之前被删除,现在正在被删除。通过将我发送到 deletebook.php 页面来删除数据。我希望在不将我发送到任何其他页面的情况下删除数据。

试试这个方法:

while($row = $result->fetch_assoc()) 
    {               
    ?>  


<tr>
  <td><?php echo  ++$x; ?></td>
  <td><?php echo $row["id"]; ?></td>
  <td><?php echo $row["title"]; ?></td>
  <td><?php echo $row["author"]; ?></td>
  <td>
      <input type="hidden" class="hiddenId" value="<?php echo $row["id"]; ?>" />
  <button type="button" class="btn btn-danger btn-xs">Delete</button>
  </td>
</tr> 


<?php
    }
}

else
{
    echo "No Books Found!";
}

?>

<script>
    var id;

$(document).ready(function(){
    $(".btn-danger").click(function(){
        id = $(this).prev().val();
        $.ajax({
            url: "deletebook.php",
            type: 'post',
            data: {
                "deletebook": id
            }
        }).done(function(response){
            $(".hiddenId[value='" + id + "']").parent().parent().remove();
        });
    });
});
</script>

添加:

$('#addbook').ajaxForm(
{ 
    success: function(responseText, statusText, xhr, $form){
        $('#booksuccess').modal('show'); 
        $("#reset").click(); 
        $("tr").last().append(responseText);
    }
}); 

并且在您的 php 添加方法中,return 一个像这样的字符串:

"<tr><td></td><td>1</td><td>$Title</td><td>$Author</td><td><input type=\"hidden\" class=\"hiddenId\" value=\"$Id\" /><button type=\"button\" class=\"btn btn-danger btn-xs\">Delete</button></td></tr>";

我想你在这里使用的是 ajaxForm 插件 http://malsup.com/jquery/form/#ajaxForm

    $(document).ready(function() { 
        $('#deleteform').ajaxForm(
           {
              beforeSubmit: function(formData, jqForm, options){
                   //show loader
              },
              success:function(responseText, statusText, xhr, $form) { 

                 alert(responseText);
                 //hide loader
              }
           }
        ); 

    });