我想如果值字段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';
}
}
?>
答案 0 :(得分:2)
将输入字段名称更改为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';
}
}
}
?>
答案 1 :(得分:2)
$txtname
或($_POST['txtname']
)是一个包含一个元素的数组。即使该元素为空,empty()
也会为任何包含一个或多个元素的数组返回TRUE
。
这应该解释你的代码的行为。
要实现您的目标,请更改HTML:
自:
<input name="txtname[]">
要:
<input name="txtname">
如果您不使用括号,它将是一个字符串。如果empty
为空,FALSE
将返回{{1}}。请参阅Variables From External Sources PHP Manual。
答案 2 :(得分:1)
如果您不打算将一个值传递给变量$ txtname
,您可以尝试这种方式。`
$txtname = $_POST['txtname'];
if($txtname[0]){
echo '<pre>';
print_r($txtname); // Output this is: Array ( [0] => )
}else{
echo 'it is ok';
}
}
&GT;`