我有一个表单,我通过ajax发送到php文件来操作数据库。通过ajax表单提交防止默认提交按钮
// 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>
// AJAX
(function($){
function processForm(e){
$.ajax({
url: 'insert.php',
dataType: 'text',
type: 'post',
contentType: 'application/x-www-form-urlencoded',
data: $(this).serialize(),
success: function(data, textStatus, jQxhr){
alert("Done");
error: function(jqXhr, textStatus, errorThrown){
console.log(errorThrown);
}
});
e.preventDefault();
}
$('#editUserForm').submit(processForm);
})(jQuery);
//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?
为什么不可能:data:{$(this).serialize(),'submit':'ok'}, –
这样做是行不通的,因为你会在单个参数中编码querystring,添加到另一个查询字符串。例如:'foo.com?foo1%3Dbar1%26foo2%3Dbar2&submit = ok' –