两个提交按钮以一种形式使用不同的操作

时间:2015-07-07 16:48:28

标签: javascript php jquery html forms

我有一个页面来编辑页面包括一个带有两个按钮的表单(OK和Delete)。我通过PHP SELF发送表单。在页面的顶部有两个函数来测试POST中收到的内容,如果收到OK,则执行此操作,如果是DELETE,则执行其他操作。按DELETE按钮,我弹出CONFIRMATION消息,这个问题。如果用户在CONFIRMATION窗口中单击OK,我尝试使用函数Jquery提交表单,但它不起作用。

    <?
     if(isset($_POST["delete_page"])){
       echo "DELETE PAGE";
     }
     if(isset($_POST["submit"])){
       echo "SUBMIT PAGE";
     }
    ?>


 <form role="form" data-toggle="validator" method="post" action="<?echo "$_SERVER[REQUEST_URI]";?>" id="update_page_frm">
    <button type="submit" class="btn btn-success" name="submit">אישור</button>
    <button type="button" class="btn btn-danger" name="delete_page" id="delete_page">הסר עמוד</button>
</form>

custom.js:

$(document).ready(function() {
$('#delete_page').click(function() {
bootbox.confirm("Are you sure want to delete?", function(result) {
    if (result) {
        $("#update_page_frm").submit();
    }

     });
   });
 });

3 个答案:

答案 0 :(得分:2)

将多个操作与单个表单相关联是相当常见的。更灵活的方法是不使用本机提交类型按钮,而是使用AJAX请求处理这两个操作。例如:

function callAction(action, callback) {
     $.ajax({
         url: '/path/to/submit/to',
         data: {
              action: action,
              form: $('#update_page_frm').serialize()
         },
         success: function(response) {
             callback(response);
         }
    });
};

$('#update_page').on('click', function(e) {
    e.preventDefault();
    callAction('update', function(response) {
         console.log('All done!');
    });
});

$('#delete_page').on('click', function(e) {
    e.preventDefault();
    callAction('delete', function(response) {
         console.log('All done!');
    });
});

请注意,上面的代码是在SO上随时写的,未经测试。应该相当接近。

答案 1 :(得分:0)

它可能是引号的问题,你的代码没有正确打开/关闭引号。试试这样:

<form role="form" data-toggle="validator" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>" id="update_page_frm" >
    <button type="submit" class="btn btn-success" name="submit">אישור</button>
    <button type="button" class="btn btn-danger" name="delete_page" id="delete_page">הסר עמוד</button>
</form>

答案 2 :(得分:0)

使用jquery调用文件时必须使用ajax

$("#delete_page").click(function(){

data1=$("#input").val();

$.ajax({
        type:"post",
        url:"file.php",
        data:"data1="+data1,
        beforeSend: function(){
                        $('#msj').html('<img src="img/Loading.gif"/> Loading...');                          
                    },
        success:function(result){

                alert(result);
                $("#msj").html('');

        }
     });
 });