Jquery 通过ajax表单提交发送默认提交按钮
我有一个表单,我通过ajax将它发送到php文件来操作数据库 //htmlJquery 通过ajax表单提交发送默认提交按钮,jquery,ajax,forms,Jquery,Ajax,Forms,我有一个表单,我通过ajax将它发送到php文件来操作数据库 //html <form id='editUserForm' action='insert.php' method='post'> <input type='text' name="userName/> <input type='text' name="userLastName/> <input type='submit' name='editUser' value='submit
<form id='editUserForm' action='insert.php' method='post'>
<input type='text' name="userName/>
<input type='text' name="userLastName/>
<input type='submit' name='editUser' value='submit'/>
</form>
//insert.php
if(isset($_POST['editUser'])){
if(isset($_POST['chUserStatus'])){
$active='َactive';
}else{$active='disabled';}
$query="update admins set user='$_POST[chUserName]', pass='$_POST[chUserPass]',email='$_POST[chUserEmail]',level='$_POST[chUserLevel]',status='$active' where id=$_POST[userId]";
$result=mysqli_query($dbCnn,$query);
echo(mysqli_error($dbCnn));
}
问题就在这里,因为我的函数阻止表单默认提交,所以它不会将提交btn名称/值发布到insert.php。如何将其作为参数发送到insert.php?serialize()
无法从按钮
元素中检索任何属性,如果需要,您需要自己添加该信息:
var $button = $('#editUser :submit');
// in the $.ajax...
data: $(this).serialize() + '&' + $button.prop('name') + '=' + $button.val(),
serialize()
不从按钮
元素中检索任何属性,如果需要,您需要自己添加该信息:
var $button = $('#editUser :submit');
// in the $.ajax...
data: $(this).serialize() + '&' + $button.prop('name') + '=' + $button.val(),
您可以在序列化之前将其放入表单数据对象中,甚至在序列化之后追加它。 我个人只会添加一个新的隐藏输入,如:
<input type="hidden" name="action" value="editUser" />
您可以在序列化之前将其放入表单数据对象中,甚至在序列化之后追加它。 我个人只会添加一个新的隐藏输入,如:
<input type="hidden" name="action" value="editUser" />
$(“#搜索”).submit(函数(e){
e、 预防默认值();
$.ajax({
url:'insert.php',
数据类型:“文本”,
键入:“post”,
contentType:'application/x-www-form-urlencoded',
数据:$(this).serialize(),
成功:函数(数据、文本状态、jQxhr){
警惕(“完成”);
},
错误:函数(jqXhr、textStatus、errorshown){
console.log(错误抛出);
}
});
})
$(“#搜索”).submit(函数(e){
e、 预防默认值();
$.ajax({
url:'insert.php',
数据类型:“文本”,
键入:“post”,
contentType:'application/x-www-form-urlencoded',
数据:$(this).serialize(),
成功:函数(数据、文本状态、jQxhr){
警惕(“完成”);
},
错误:函数(jqXhr、textStatus、errorshown){
console.log(错误抛出);
}
});
})
为什么不可能:data:{$(this).serialize(),'submit':'ok'},这不起作用,因为您需要将querystring编码在单个参数中,然后添加到另一个querystring中。例如:foo.com?foo1%3Dbar1%26foo2%3Dbar2&submit=ok
为什么不可能:数据:{$(this).serialize(),'submit':'ok'},这不起作用,因为您需要将查询字符串编码在单个参数中,然后添加到另一个查询字符串中。例如:foo.com?foo1%3Dbar1%26foo2%3Dbar2&submit=ok