我对PHP& AJAX。我有两个HTML提交按钮,我使用ajax serialize()传递/从PHP文件中提取一些值或者说ajax。问题是serialize()无法区分使用哪个按钮,"拒绝"按钮或"接受"为PHP文件创建问题的按钮,因为它既不处理接受按钮也不处理拒绝按钮。
最后,我的主要目的是在用户点击接受按钮&时向数据库添加一些数据。如果用户点击拒绝按钮但是使用Ajax,则从数据库中删除一些数据。
HTML
<button class="p" type="submit" value="accept"></button>
<button class="p" type="submit" value="reject"></button>
PHP
if($_SERVER["REQUEST_METHOD"] == "POST"){
if(isset($_POST["accept"]){
// doSomething
}else if(isset($_POST["reject"]){
// doSomethingElse
}
}
...
...
...
Ajax(它不是完整的代码,只是为了有基本的想法)
var form = $d('#formName');
$('.p').click(function(){
var formData = $d(form).serialize();
$d.ajax({
type: 'POST',
url: $d(form).attr('action'),
data: formData
})
.done(function(response){
window.location.reload(true);
})
});
答案 0 :(得分:0)
您需要提供submit
name
个属性。例如:
<button class="p" name="action" type="submit" value="accept"></button>
<button class="p" name="action" type="submit" value="reject"></button>
您的PHP代码可以检查$_POST
值的操作。示例:
if($_POST["action"] == 'accept'){
// doSomething
}else if($_POST["action"] == 'reject'){
// doSomethingElse
}
答案 1 :(得分:0)
提交按钮未序列化,您可以手动从中获取数据 还要确保按钮具有名称属性。
$('.p').click(function(e){
e.preventDefault();
var formData = $(this).attr('name') + '=' + encodeURIComponent(this.value) + '&' + $d(form).serialize();
$d.ajax({
type: 'POST',
url: $d(form).attr('action'),
data: formData
})
.done(function(response){
window.location.reload(true);
});
});