验证PHP中的下拉列表

时间:2013-08-18 01:13:58

标签: php

我正在尝试在PHP中验证表单。我有指示不更改表单本身(例如字段的名称),其中有一个下拉列表,其中包含:     <option value=""></option>

我试图用这个验证:

if (!isset($_POST['cboproduit'])){
$message.= "Vous devez sélectionner un téléphone <br />";} 

但由于其中没有任何内容的值,如果我使用空值提交表单,则只保存一个空值。

我怎样才能以简单的方式做到这一点?

4 个答案:

答案 0 :(得分:2)

除了检查变量是否已设置外,还需要检查它是否为空:

if (!isset($_POST['cboproduit']) || $_POST['cboproduit'] === '') {
    $message .= "Vous devez sélectionner un téléphone <br />";
}

答案 1 :(得分:0)

您可以使用empty代替isset,因为empty也会检查变量是否存在:

 if (empty($_POST['cboproduit'])){
    $message.= "Vous devez sélectionner un téléphone <br />";
 }

答案 2 :(得分:0)

不同的函数检查变量的不同内容。根据文件:

  • isset():确定变量是否已设置且不为NULL。
  • empty():如果变量不存在或者其值等于FALSE,则该变量被视为空。
  • array_key_exists():如果在数组
  • 中设置了给定键,则返回TRUE

所以在你的情况下,if (empty($_POST['cboproduit']))似乎是最好的方法。它将检测值是否以某种方式未传输(有人可以在提交之前在浏览器中编辑表单)或选择空选项。

(请注意,这意味着无法确定不存在的变量与null变量之间的差异。)

答案 3 :(得分:0)

只是一个想法但空的可能不适合你,因为<option value=""></option>的value属性可能被设置为0表示第一个元素(1作为第二个,依此类推)然后这意味着你永远不会将第0个元素删除为空检查0和空白

if (empty($_POST['cboproduit'])){
    $message.= "Vous devez sélectionner un téléphone <br />";
 }