多个提交按钮

时间:2013-04-23 07:02:10

标签: php button submit

我在HTML和&amp ;;中提交了多个提交按钮时遇到了问题PHP,我试图为基于Web的计算器编写GUI。这真的很容易,但php中的功能并不那么容易。所以我有这个简单的GUI,有6个提交按钮:

<?php 
$output= isset($_POST['output']) ? $_POST['output'] : "";

function calc(){
//calculate...
}

?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<title>Calc</title>
<style type="text/css">
 .bwidth {
      width: 100%;
}
</style>
</head>
<body>
    <form action="calc.php">
        <h1>
            <u>MY Own Calculator</u>
        </h1>
        <table border="3px" type="box" cellspacing="5px" width="250px">
            <tr style="height: 24px;">
                <td colspan="3"><input type="text" name="<?php $ausgabe ?>"
                    value="0" style="width: 98%;" /></td>
            </tr>
            <tr>
                <td><input class="bwidth" type="submit" name="1" value="1" /></td>
                <td><input class="bwidth" type="submit" name="2" value="2" /></td>
                <td><input class="bwidth" type="submit" name="3" value="3" /></td>

            </tr>
            <tr>
                <td><input class="bwidth" type="submit" name="minus" value="-" /></td>
                <td><input class="bwidth" type="submit" name="plus" value="+" /></td>
                <td><input class="bwidth" type="submit" name="enter"
                    value="=" /></td>
            </tr>
        </table>
    </form>
</body>

现在我如何区分这些提交按钮?甚至可以有多个提交按钮?我尝试用值来分隔按钮......但它没有用。

并且sb知道如何在文本字段中为现有值添加值?所以我可以按下按钮1,它将在文本字段中写入1,当我按下按钮2时,它将添加数字2,因此它将为“12”?

感谢所有建议!

7 个答案:

答案 0 :(得分:4)

在您的php中

if(isset($_POST['minus'])) {
  // selected minus
}

if(isset($_POST['plus'])) {
  // selected plus
}

if(isset($_POST['enter'])) {
  // selected enter
}

当您点击一个按钮时,它将与您的发布数据一起发送到服务器。您在$ _POST数组中找到的所有发布数据。

如果你想看看$ _POST数组中的什么,你可以运行这个小代码:

<?php
   echo '<pre>' . print_r($_POST, true) . '</pre>';
?>

答案 1 :(得分:3)

您可以使用JavaScript执行此操作,首先您必须将<form>更改为:

<form id="form1" name="form1" method="post" action="calc.php">

然后JavaScript和按钮应如下所示:

<script>
function submitForm(action)
{
    document.getElementById('form1').action = action;
    document.getElementById('form1').submit();
}
</script>

...

<input type="button" onclick="submitForm('page1.php')" value="submit 1" />
<input type="button" onclick="submitForm('page2.php')" value="submit 2" />

答案 2 :(得分:3)

可能是您可以为所有提交按钮使用一个名称。

<input type="submit" name="operator" value="+" />
<input type="submit" name="operator" value="-" />
<input type="submit" name="operator" value="=" />

你可以在php中获取值

<?php
    $opr = $_GET['operator'];
    if($opr == "+") {
         //do something
    } else if($opr == "-") {
         //do something
    } else if($opr == "=") {
         //do something
    }
?>

答案 3 :(得分:2)

将表单提交到calc.php

calc.php内查看收到的表单元素。

if(isset($_REQUEST['minus']))
{
    // minus is clicked
}
else if(isset($_REQUEST['plus']))
{
    // plus is clicked
}
else if(isset($_REQUEST['enter']))
{
    // enter is clicked
}

点击的按钮将与表单一起发送,而不是其他...

希望它有所帮助...

答案 4 :(得分:2)

您可以尝试使用isset($_GET['input_name'])验证设置了哪个按钮。

或者你可以命名不同的输入:

<form action="calc.php">
    <h1>
        <u>MY Own Calculator</u>
    </h1>
    <table border="3px" type="box" cellspacing="5px" width="250px">
        <tr style="height: 24px;">
            <td colspan="3"><input type="text" name="<?php $ausgabe ?>"
                value="0" style="width: 98%;" /></td>
        </tr>
        <tr>
            <td><input class="bwidth" type="submit" name="digit" value="1" /></td>
            <td><input class="bwidth" type="submit" name="digit" value="2" /></td>
            <td><input class="bwidth" type="submit" name="digit" value="3" /></td>

        </tr>
        <tr>
            <td><input class="bwidth" type="submit" name="operation" value="-" /></td>
            <td><input class="bwidth" type="submit" name="operation" value="+" /></td>
            <td><input class="bwidth" type="submit" name="operation" value="=" /></td>
        </tr>
    </table>
</form>

在你的功能中:

function calc(){
    $op = isset($_GET['operation']) ? $_GET['operation'] : null;
    switch ($op) {
       case "+": .... ; break;
       case "-": .... ; break;
       case "=": .... ; break;
       default: "not supported";
    }

}

答案 5 :(得分:2)

是的,您可以在表单中添加n个提交按钮。

在与提交按钮相同的行中指定操作页面。

<form action="actionpage.php">
<input type="submit" value="1">
<input type="submit" value="2" formaction="postPage.php">
</form>

更新 - 如果IE中出现问题

<form>
<input type="submit" value="1" onclick="document.formName.action='abc.php';">
<input type="submit" value="2" onclick="document.formName.action='xyz.php';">
</form>

答案 6 :(得分:0)

您可以使用JavaScript提交表单。单击按钮后,调用JS函数,通过推送操作设置一些隐藏元素,然后将表单提交给服务器。