未通过 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
}
}
);
});
有一个 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
}
}
);
});