如果从<option>标记

时间:2017-04-13 16:54:26

标签: php html forms post

我正在尝试新创建的脚本并发现了一个问题。如何检测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检测用户是否已删除了值属性?

1 个答案:

答案 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ą!';
  }