Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中下拉列表的验证_Php - Fatal编程技术网

PHP中下拉列表的验证

PHP中下拉列表的验证,php,Php,我正在尝试用PHP验证表单。我有不更改表单本身的说明(例如字段名称),其中有一个下拉列表,其中包含以下内容: 我试着用这个来验证: if (!isset($_POST['cboproduit'])){ $message.= "Vous devez sélectionner un téléphone <br />";} if(!isset($\u POST['cboproduit'])){ $message.=“您的手机号码”;} 但是,由于有一个值中没有任何内容,如果我提交带

我正在尝试用PHP验证表单。我有不更改表单本身的说明(例如字段名称),其中有一个下拉列表,其中包含以下内容:

我试着用这个来验证:

if (!isset($_POST['cboproduit'])){
$message.= "Vous devez sélectionner un téléphone <br />";} 
if(!isset($\u POST['cboproduit'])){
$message.=“您的手机号码
”;}
但是,由于有一个值中没有任何内容,如果我提交带有空值的表单,它只会保存一个空值


如何以简单的方式执行此操作?

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

if (!isset($_POST['cboproduit']) || $_POST['cboproduit'] === '') {
    $message .= "Vous devez sélectionner un téléphone <br />";
}
if(!isset($_POST['cboproduit']))|$_POST['cboproduit']=''){
$message.=“您的手机号码
”; }
您可以使用而不是
isset
,因为
为空
还可以检查变量是否存在:

 if (empty($_POST['cboproduit'])){
    $message.= "Vous devez sélectionner un téléphone <br />";
 }
if(空($\u POST['cboproduit'])){
$message.=“您的手机号码
”; }
不同的函数检查变量的不同方面。根据文件:

  • :确定变量是否已设置且不为空
  • :如果变量不存在或其值等于FALSE,则认为该变量为空
  • :如果在数组中设置了给定键,则返回TRUE
因此,在您的情况下,
if(empty($\u POST['cboproduit'])
似乎是最好的方法。它将检测是否以某种方式未传输该值(有人可以在提交表单之前在浏览器中编辑表单)或是否选择了空选项


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

仅仅是一个想法但为空可能不适用于您,因为第一个元素的
的value属性可能设置为0(第二个元素为1,依此类推)这意味着您永远不能删除第0个元素,因为它是0的空检查,也是空检查

if (empty($_POST['cboproduit'])){
    $message.= "Vous devez sélectionner un téléphone <br />";
 }
if(空($\u POST['cboproduit'])){
$message.=“您的手机号码
”; }
谢谢您的快速回答!非常感谢:值得注意的是,这种检查有一个可能意想不到的副作用:它将字符串
“0”
视为空。这是和。@t谢谢,我把它改成了
='