表单上的多个提交按钮

时间:2011-12-21 16:32:17

标签: php javascript forms

  

可能重复:
  Multiple submit buttons in an HTML form

我想知道是否有人可以帮助我。

我将this格式放在一起,正如您在页面底部看到的那样,该格式允许用户添加和删除与主记录关联的图像文件。

我遇到的问题是,有多个按钮后面有“提交”操作,即:“上传此文件”,“删除所选图像”,“查看所选图像”和“提交”,因为对此,我使用的按钮并不重要,唯一执行的操作是完整的记录提交。

有人可能请告诉我,我如何确保每个按钮背后的“提交”操作彼此独立。

非常感谢和亲切的问候

4 个答案:

答案 0 :(得分:2)

如果你把每个按钮放在一个单独的<form></form>中,它应该没问题。这可能在您当前的设置中吗?

假设你做不到上述事情:

形式:

<form name='myForm'>
<input type='hidden' id='hiddenSubmit' name='hiddenSubmit' value=''/>
//lots of fields here
<input type='button' name='action1' onclick='changeHiddenSubmit(this.name)'/>
//some more fields
<input type='button' name='action2' onclick='changeHiddenSubmit(this.name)'/>

//etc...
</form>

JS:

<script>
   function changeHiddenSubmit(name){
       document.getElementById('hiddenSubmit').value = name;
       document.myForm.submit();

    }
</script>

PHP:

<?php
  switch($_POST['hiddenSubmit'){
    case 'action1':

    break;
     case 'action2':

    break;
 }

?>

答案 1 :(得分:2)

您不需要为每个按钮使用单独的表单。 您可以在提交按钮的“名称”中使用不同的值。然后在服务器上,您可以检查'form_action'的值

示例:

<input name="form_action[delete]" type="submit" value="Delete">
<input name="form_action[update]" type="submit" value="Update">

根据需要设置这些按钮。 在服务器上检查$ _POST ['form_action']的值

答案 2 :(得分:1)

答案 3 :(得分:0)

如果您将提交按钮设为唯一的name,则可以在服务器端告知其中哪一个被点击(导致提交表单)。

试试这个例子:

<?php
    if (isset($_POST['b1'])) {
        echo 'Button 1 was pressed.';
    }
    if (isset($_POST['b2'])) {
        echo 'Button 2 was pressed.';
    }
    if (isset($_POST['b3'])) {
        echo 'Button 3 was pressed.';
    }
?>
<form action="" method="post">
<input type="submit" name="b1" />
<input type="submit" name="b2" />
<input type="submit" name="b3" />
</form>