如果用户提交的<input>
框之一为空,我想显示错误,但我还想处理没有空名称的框。
以下是表格:http://jsfiddle.net/Draven/rEPXM/27/
PHP:
if(isset($_POST['addFolder']))
{
foreach($_POST['folder'] as $id => $value)
{
$database->query('INSERT INTO folders (name) VALUES (?)', array($value));
}
$success[] = "Folder(s) added";
}
答案 0 :(得分:2)
尝试以下
foreach($folder as $id => $value)
{
if($value){
$database->query('INSERT INTO folders (name) VALUES (?)', array($value));
}
else {
$error[]=$id;
}
}
$ error包含所有没有值的索引。
答案 1 :(得分:2)
试试这个:
$folder = isset($_POST['folder']) && is_array($_POST['folder'])
? $_POST['folder']
: array();
$errors = array();
foreach ($folder as $id => $value) {
$value = is_array($value) ? '' : trim($value);
if ($value == '') {
$errors[$id] = 'Empty value';
continue;
}
$database->query('INSERT INTO folders (name) VALUES (?)', array($value));
}
修改模板:
...
<div id="foldercontainer">
<?php foreach ($errors as $error): ?>
<div>
<div><?php echo $error ?></div>
<input name="folder[]" type="text" size="20" value="" />
</div>
<?php endforeach ?>
</div>
...
答案 2 :(得分:0)
if(!isset($folder) || $folder === "")
但如果您$folder
为空......
答案 3 :(得分:0)
补充所说的内容。 如果要测试值是否为空,请使用trim()。您不想命名具有空值的文件夹,对吗?:
$folder = array('aaaa', 'bbbb', ' ', ' ');
foreach($folder as $id => $value) {
$value = trim($value);
if(!empty($value)) {
var_dump($value);
} else {
$error[]=$id;
}
}
在上升的过程中输出将是:
string 'aaaa' (length=4)
string 'bbbb' (length=4)
现在,不使用trim()并测试它是否为空,输出是(并且这是一个错误):
string 'aaaa' (length=4)
string 'bbbb' (length=4)
string ' ' (length=1)
string ' ' (length=4)