我有一個表單,我通過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' –