我使用此代码验证选择框值。但我的问题是,当我在选择框中没有选择选项的情况下提交表单时,它不会出现错误消息。
if ( !isset( $_POST['how_hear'])) {
$errors[] = 'Select an option from How did you hear us select box';
} else {
$howHear = $_POST['how_hear'];
}
这是我的选择框
$howHear = array( 1 => 'option value 01',
'option value 02',
'option value 03',
'option value 04',
'option value 05',
'option value 06',
'option value 07',
'option value 08'
);
echo "<select name='how_hear'>
<option>--Select an Option--</option>\n";
foreach ( $howHear AS $key => $value) {
echo "<option value='{$key}'";
// Check for stickyness:
if ( $_POST['how_hear'] == $key){
echo " selected='selected'";
}
echo ">$value</option>\n";
}
echo "</select>\n";
有人可以告诉我错误的地方吗? 谢谢。
答案 0 :(得分:1)
问题似乎是设置了how_hear。默认值为
--Select an Option--
检查
$_POST['how_hear'] != "--Select an Option--"
或者,更新您的选择字段,使默认值为0(这是正确的事情)。然后检查该值是否为非。
<option value="0">--Select an Option--</option>
答案 1 :(得分:1)
尝试
<option value="0">--Select an Option--</option>
和
if ( $_POST['how_hear'] == 0) {
// error message
}
答案 2 :(得分:0)
您应该添加另一个条件,
if ( !isset( $_POST['how_hear']) || $_POST['how_hear'] == "") {
$errors[] = 'Select an option from How did you hear us select box';
} else {
$howHear = $_POST['how_hear'];
}
答案 3 :(得分:0)
我对您的代码进行了一些更改并进行了更新。
<?php
if (isset($_POST['submit']))
{
if ($_POST['how_hear'] == 0)
{
echo "error";
$errors[] = 'Select an option from How did you hear us select box';
}
else
{
echo "Hello";
$howHear = $_POST['how_hear'];
}
}
echo "<form method='post' action='#'>";
$howHear = array( 1 => 'option value 01',
'option value 02',
'option value 03',
'option value 04',
'option value 05',
'option value 06',
'option value 07',
'option value 08'
);
echo "<select name='how_hear'>
<option>--Select an Option--</option>\n";
foreach ( $howHear AS $key => $value)
{
echo "<option value='{$key}'>";
echo "$value</option>\n";
}
echo "</select>\n";
echo "<input type='submit' name='submit' value='submit'/>";
echo "</form>";
?>
我添加提交按钮,当提交表单时,我会检查是否提交isset
。
之后我检查how_hear
值是否已选中。如果选项值0
,则会显示错误。