提交按钮值与隐藏的输入值

时间:2017-08-20 16:18:16

标签: php html html5 forms form-submit

您能告诉我提交提交按钮值和提交隐藏输入值之间的区别吗?

我问的问题尤其是关于浏览器兼容性(IE 9 +)。

所以,我的问题实际上是以下内容:我知道服务器始终正确读取已发布的隐藏输入值。但我不确定是否也是这种情况,如果值(我想发布)是"value"标记的<button>属性的一部分。

非常感谢你的时间!

P.S:我为了清晰起见准备了一个例子。它包含我的问题中每个选项的表单。提交其中一个表单时,将在PHP中读取相应的值。相关的是用户ID值。

<?php
if (isset($_POST['submitUserId']) && !empty($_POST['submitUserId'])) { // Submitted values.
    $userId = $_POST['submitUserId'];
    $userName = $_POST['userName'];

    echo 'Posted user id: ' . $userId;
    echo '<br/>';
    echo 'Posted user name: ' . $userName;

    // Save the new values in db...
} else { // Initial values fetched from db.
    $userId = 123;
    $userName = 'Valentine';

    echo 'Initial user id: ' . $userId;
    echo '<br/>';
    echo 'Initial user name: ' . $userName;
}
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Test - Submit button value vs. hidden input value</title>
    </head>
    <body>

        <h4>Option 1: Submit <i>user id</i> as submit button value</h4>

        <form action="" method="post" id="formButtonValue" name="formButtonValue">
            <input type="text" id="userName" name="userName" value="<?php echo $userName; ?>" />

            <button type="submit" id="submitUserId" name="submitUserId" value="<?php echo $userId; ?>">
                Submit user details
            </button>
        </form>

        <h4>VS.</h4>

        <h4>Option 2: Submit <i>user id</i> as hidden input value</h4>

        <form action="" method="post" id="formHiddenInputValue" name="formHiddenInputValue">
            <input type="text" id="userName" name="userName" value="<?php echo $userName; ?>" />

            <input type="hidden" id="submitUserId" name="submitUserId" value="<?php echo $userId; ?>" />

            <button type="submit" id="submitButton" name="submitButton">
                Submit user details
            </button>
        </form>

    </body>
</html>

2 个答案:

答案 0 :(得分:1)

在提交数据流程中,没有任何区别。

服务器端永远不会知道或关心如何在客户端显示或处理输入。

事实上,在您的代码中,隐藏输入中的value和按钮中的var url ="http://api.geonames.org/postalCodeSearchJSON?postalcode=110084&maxRows=100&username=dhirajshivaji"; $.post(url, function(results) { for(var i = 0; i < results.postalCodes.length; i++) { var name = postalCodes[i]["adminName3"];//change alert(name); } }); 对用户都是隐藏的。

答案 1 :(得分:0)

没有区别

提交用户ID作为提交按钮值( var_dump($ _ POST)

array(2) { ["userName"]=> string(9) "Valentine" ["submitUserId"]=> string(3) "123" } 

将用户ID提交为隐藏输入值( var_dump($ _ POST)

array(3) { ["userName"]=> string(9) "Valentine" ["submitUserId"]=> string(3) "123" ["submitButton"]=> string(0) "" }