提交按钮值与隐藏输入值
Submit button value vs. hidden input value
你能告诉我提交提交按钮值和提交隐藏输入值的区别吗?
我问这个问题,特别是关于浏览器兼容性 (IE 9+)。
所以,我的问题实际上如下:我知道 posted 隐藏的输入值总是被服务器正确读取。但是我不确定是否也是这种情况,如果值(我想要 post)是 <button>
标签的 "value"
属性的一部分。
非常感谢您的宝贵时间!
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>
在提交数据的过程中,完全没有区别。
服务器端永远不会知道或关心客户端如何显示或处理输入。
事实上,在您的代码中,value
作为隐藏输入中的那个和按钮中的那个,对用户都是隐藏的。
没有区别
提交用户 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) "" }
你能告诉我提交提交按钮值和提交隐藏输入值的区别吗?
我问这个问题,特别是关于浏览器兼容性 (IE 9+)。
所以,我的问题实际上如下:我知道 posted 隐藏的输入值总是被服务器正确读取。但是我不确定是否也是这种情况,如果值(我想要 post)是 <button>
标签的 "value"
属性的一部分。
非常感谢您的宝贵时间!
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>
在提交数据的过程中,完全没有区别。
服务器端永远不会知道或关心客户端如何显示或处理输入。
事实上,在您的代码中,value
作为隐藏输入中的那个和按钮中的那个,对用户都是隐藏的。
没有区别
提交用户 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) "" }