我正在尝试新创建的脚本并发现了一个问题。如何检测value
标记中的<option>
属性是否已删除?我有以下脚本:
if (isset($_POST['day']) && !empty($_POST['day'])) {
if ($_POST['day'] === 'pirmadienis') {
echo 'Laugh on Monday, laugh for danger.';
} elseif ($_POST['day'] === 'antradienis') {
echo 'Laugh on Tuesday, kiss a stranger.';
} elseif ($_POST['day'] === 'treciadienis') {
echo 'Laugh on Wednesday, laugh for a letter.';
} elseif ($_POST['day'] === 'ketvirtadienis') {
echo 'Laugh on Thursday, something better.';
} elseif ($_POST['day'] === 'penktadienis') {
echo 'Laugh on Friday, laugh for sorrow.';
} elseif ($_POST['day'] === 'sestadienis') {
echo 'Laugh on Saturday, joy tomorrow.';
}
} else {
echo '<form action="" method="POST">
<label for="day">Pasirinkite bet kurią dieną </label>
<select name="day">
<option value="pirmadienis">Pirmadienis</option>
<option value="antradienis">Antradienis</option>
<option value="treciadienis">Trečiadienis</option>
<option value="ketvirtadienis">Ketvirtadienis</option>
<option value="penktadienis">Penktadienis</option>
<option value="sestadienis">Šeštadienis</option>
</select>
<input type="submit" value="Tęsti">
</form>';
}
if (isset($_POST['day']) && empty($_POST['day'])) {
echo 'Pasirinkite dieną!';
}
例如,我们使用inspect element:
删除value
属性
<option>Pirmadienis</option>
并提交表格。我们没有得到任何错误,因为if if语句,表格消失了:
if (isset($_POST['day']) && !empty($_POST['day'])) {
这是真的,所以else
没有被执行,但是找不到$_POST['day']
数组的值。那么,如何使用PHP
检测用户是否已删除了值属性?
答案 0 :(得分:0)
如果删除value
属性,则默认为选项的文本。您应该在所有可能值的测试结束时放置else
子句,并在那里打印错误。
if ($_POST['day'] === 'pirmadienis') {
echo 'Laugh on Monday, laugh for danger.';
} elseif ($_POST['day'] === 'antradienis') {
echo 'Laugh on Tuesday, kiss a stranger.';
} elseif ($_POST['day'] === 'treciadienis') {
echo 'Laugh on Wednesday, laugh for a letter.';
} elseif ($_POST['day'] === 'ketvirtadienis') {
echo 'Laugh on Thursday, something better.';
} elseif ($_POST['day'] === 'penktadienis') {
echo 'Laugh on Friday, laugh for sorrow.';
} elseif ($_POST['day'] === 'sestadienis') {
echo 'Laugh on Saturday, joy tomorrow.';
} else {
echo 'Pasirinkite dieną!';
}