多个提交按钮,带有ajax& php没有被处理

时间:2016-04-06 18:45:18

标签: php jquery ajax

我对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);
    })
});

2 个答案:

答案 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);
    });
});