你如何记住使用PHP的选择菜单中的用户选择?

时间:2014-11-05 02:29:16

标签: php html validation

初学者。我希望我的用户选择能够记住选择菜单。我把那部分放下了。但现在,它没有正确验证(以前)。我该如何解决这个问题?

以下是我验证的代码:

<?php
  $color = $_POST["color"];

  if(isset($_POST["submit"])) {

    if($_POST["color"] == 0) {
      $errors[] = "Select a color option.";
    }

这是带有选择列表的HTML表单和用于记住选择的php:

<h3>MP5 Information</h3>
<span>Color:</span>
<select name="color"id="color">
  <option value="">- Select color -</option>
  <option value="sapphire"<?php echo $color == 'sapphire' ? 'selected="selected"' : ''; ?
  >>Sapphire</option>
  <option value="amethyst"<?php echo $color == 'amethyst' ? 'selected="selected"' : ''; ?
  >>Amethyst</option>
  <option value="rose"<?php echo $color == 'rose' ? 'selected="selected"' : ''; ?
  >>Rose</option>
  <option value="topaz"<?php echo $color == 'topaz' ? 'selected="selected"' : ''; ?
  >>Topaz</option>
</select>
<br/><br/>

3 个答案:

答案 0 :(得分:10)

您的代码包含语法错误。 PHP关闭代码应为?>。您在?>之间有一个新行。先修复它,也用括号括起条件。

<select name="color" id="color">
    <option value="">- Select color -</option>
    <option value="sapphire"<?php echo ($color == 'sapphire') ? 'selected="selected"' : ''; ?>>Sapphire</option>
    <option value="amethyst"<?php echo ($color == 'amethyst') ? 'selected="selected"' : ''; ?>>Amethyst</option>
    <option value="rose"<?php echo ($color == 'rose') ? 'selected="selected"' : ''; ?>>Rose</option>
    <option value="topaz"<?php echo ($color == 'topaz') ? 'selected="selected"' : ''; ?>>Topaz</option>
</select>

答案 1 :(得分:4)

我不确定它之前是如何工作的,但你的情况不会起作用:

'sapphire' == 0

例如evaluates to true

您可能需要以下内容:

if (empty($_POST["color"])) {

还请注意@ PleaseWait关于结束标签的回答。

答案 2 :(得分:2)

//First make sure its not empty.



 > 123 
Etc...

然后为每个选项添加条件

等等所有选项。请记住将xahge条件设置为每个选项的相同值。

请注意,即使在我们的php.INI中禁用了php短暂打开,<?=也已启用。

干杯