在单个表单中使用2个提交按钮

时间:2015-10-28 06:52:33

标签: javascript php html html5 forms

我有一个允许用户提交值的表单,它工作正常,但现在我已经在表单中引入了另一个按钮"另存为草稿"

<form class="form-horizontal" role="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
    <input name="title">
    <input name="tag1">    
    <textarea name="details"></textarea>

    <button name="draft" type="submit1" class="btn btn-default">Save as Draft</button>
    <input name="location" required>
    /*
    *
    few more i/p values
    *
    */

<button name="save" type="submit" value="submit" >Save</button>
</form>

我想要做的是将title,tag1和details的值保存在数据库中,而不保存save as draft按钮下的值。为此我使用了以下代码

if ($_POST['draft'])
    {
        //exectue the required code
    }
elseif($_POST['save'])
    {
        //exectue the required code
    }

现在的问题是,如果我点击另存为草稿,它仍会检查该按钮下面的编码(例如我已经确定了所需位置),而要求是如果用户点击&#34 ;另存为草案&#34;那么值应该被保存,并且不需要填充它下面的其他值,但是如果单击了提交按钮,则需要填充所有值。任何人都可以告诉你如何这样做

4 个答案:

答案 0 :(得分:0)

您只能使用javascript执行此操作。您需要在“保存草稿”按钮上放置一个onclick处理程序,该按钮将从该提交不需要的任何字段中删除所需的属性。或者,您可以从所有字段中删除所需的属性,并使用自定义javascript处理表单验证。

答案 1 :(得分:0)

您可以使用javascript执行此操作 请尝试以下代码:

<form class="form-horizontal" role="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
    <input name="title" id="title">
    <input name="tag1" id-"tag1">    
    <textarea name="details" id="details"></textarea>

    <button name="draft" id="draft" class="btn btn-default" onclick="update_draft()">Save as Draft</button>
    <input name="location" required>
    /*
    *
    few more i/p values
    *
    */

<button name="save" type="submit" value="submit" >Save</button>
</form>

JS:

<script>
function update_draft(){

            if($("#title").val() === "")
            {
              alert("empty title");
            }
            else if($("#tag1").val()==="")
            {
              alert("empty tag");
            }
            else if($("#details").val()==="")
            {
              alert("empty details");
            }
            else
            {
                   $.post('<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>', {draft:true,title: $("#title").val(), tag1: $("#tag1").val(),details: $("#details").val() }, function(data, status){

                });
            }
}
</script>

SERVER SIDE ::

if($_POST["draft"]){

}
elseif($_POST["save"]){

}

答案 2 :(得分:0)

<form class="form-horizontal" role="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
    <input name="title">
    <input name="tag1">    
    <textarea name="details"></textarea>

    <button name="draft" id="draft" type="submit1" class="btn btn-default">Save as Draft</button>
    <input name="location" required>
    /*
    *
    few more i/p values
    *
    */

<button name="save" id="save" type="submit" value="submit" >Save</button>
</form>
<script>
    $( "#save" ).submit(function( event ) {
      alert( "I'm Save" );

    });

    $( "#draft" ).submit(function( event ) {
      alert( "I'm Draft" );
      event.preventDefault();
    });
</script>

答案 3 :(得分:0)

对我来说,echo var_dump($_POST['draft']);会生成输出string(0) "",表示$_POST['draft']是一个空字符串。换句话说,该值为false,其余代码不会被执行。

您需要使用isset来检查密钥是否存在。我能够使用以下简化代码读取按下了哪个按钮:

<html>
<body>
<?php

if (isset($_POST['draft'])) {
    echo 'Draft was saved';
} else if (isset($_POST['submit'])) {
    echo 'Form was submitted';
}

echo '<pre>';
print_r($_POST);
echo '</pre>';

?>
<form method='post'>
<input name='draft' type='submit' value='Save Draft'>
<input name='submit' type='submit' value='Submit'>
</form>
</body>
</html>

以下代码由您发布的代码组成,也适用于我:

<html>
<body>
<?php
if (isset($_POST['draft'])) {
    echo "Draft was made";
} else if(isset($_POST['save'])) {
    echo "Form was saved";
}
?>
<form class="form-horizontal" role="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
    <input name="title">
    <input name="tag1">
    <textarea name="details"></textarea>

    <button name="draft" type="submit1" class="btn btn-default">Save as Draft</button>
    <input name="location" required>
    /*
    *
    few more i/p values
    *
    */

<button name="save" type="submit" value="submit" >Save</button>
</form>
</body>
</html>
相关问题