我想如果值字段txtname
是空的回声It is ok
,但它不工作在我的代码(如果字段是空的,点击按钮,你看到输出与print_r(...)
),请参阅我的演示和我的代码。我该怎么办?
http://codepad.viper - 7. - com/fnwcis
<form method="post">
<input name="txtname[]">
<button>Click Me</button>
</form>
<?php
if ($_POST) {
$txtname = $_POST['txtname'];
if (!empty($txtname)) {
echo '<pre>';
print_r($txtname); // Output this is: Array ( [0] => )
} else {
echo 'it is ok';
}
}
?>
$txtname
or ($_POST['txtname']
)是一个只有一个元素的数组。即使该元素为空,对于任何包含一个或多个元素的数组,empty()
返回TRUE
。
这应该可以解释你的代码的行为。
要实现您正在寻找的,更改HTML:
来自:<input name="txtname[]">
:
<input name="txtname">
如果你不使用括号,它将是一个字符串。如果empty
为空,则返回FALSE
。参见《PHP手册》。
将输入字段名称更改为如下所示的txtname
<input name="txtname">
或者如果你想使用数组的文本框试试下面的代码。
<form method="post">
<input name="txtname[]">
<input name="txtname[]">
<input name="txtname[]">
<button>Click Me</button>
</form>
<?php
if($_POST){
$txtname = $_POST['txtname'];
foreach($txtname as $key=>$value)
{
if(!empty($value)){
echo '<br>'.$value; // Output this is: Array ( [0] => )
}else{
echo '<br>it is ok';
}
}
}
?>
如果您不打算将一个值传递给变量$txtname
,则可以这样尝试。'
$txtname = $_POST['txtname'];
if($txtname[0]){
echo '<pre>';
print_r($txtname); // Output this is: Array ( [0] => )
}else{
echo 'it is ok';
}
}
?> "