2014-09-26 59 views
0

我是PHP的新手。我有这个添加pultiple数组到MySQL数据库的输入。PHP使用empty()函数检查数组

​​

现在,我需要检查是否有空值发送到数据库。

我检查empty()函数,但这不适用于name="image_url[]"

HTML:

<input name="image_url[]" id="upload" type="text" value=""> 

PHP代码:

if(empty($_POST['image_url'])){ 

echo 'true'; 

} else { 

echo 'false'; 

} 

但我总是看到输出:真实。在默认情况下,我的输入是空白/空的。

我检查并从输入名称(name =“image_url”)中删除[],我看到true输出。

我想我的问题是输入数组名称。

如何解决这个问题并检查空值?

中的var_dump($ _ POST)我看到这样的输出:

["image_url"]=> 
    array(1) { 
    [0]=> 
    string(0) "" 
    } 

现场演示http://madenade.besaba.com/php/?action=editnews&id=10

注意:您在演示空值,而不是空值!你看输出:false

+1

尝试isset($ _ POST ['image_url'])看是否设置了值并且不为空 – 2014-09-26 06:39:49

+0

阅读有关什么被认为是空的手册 – 2014-09-26 06:40:02

回答

1

你正在输入名称中使用[]创建一个值的数组。如果您只需要一个值,而不是更多,则请删除输入名称中的[],否则您将在$_POST['image_url']中获得一个数组。

<input name="image_url" id="upload" type="text" value=""> 
if (empty($_POST['image_url'])) { 
    echo 'true'; 
} else { 
    echo 'false'; 
} 

否则,如果您需要值的数组,然后保持[]输入名字的意思是$_POST['image_url']将包含值的数组,而不是一个单一的值。你可能想要检查它们中的每一个。

<input name="image_url[]" id="upload" type="text" value=""> 
foreach ($_POST['image_url'] as $image_url) { 
    if (empty($image_url)) { 
     echo 'true'; 
    } else { 
     echo 'false'; 
    } 
} 
+0

当我们有一个输入框并且此代码检查一个输入框有值发送并将所有输入框(空值+非空值)插入数据库。我只需要将非空值插入到我的数据库中。 '我只需要发送'123'和'456'值给数据库。 – 2014-09-26 06:56:31

+0

@EricFavoni,好吧,你只能在'if'分支中保存你需要的值,并删除你在else分支中不需要的东西。 – rid 2014-09-26 07:01:26

+0

请参阅我的新编辑。 – 2014-09-26 07:28:18

0

首先使用HTML这样的(如果乌拉圭回合进入单个值)

<input name="image_url" id="upload" type="text" value=""> 

然后在PHP代码检查像这样

if(isset($_POST['image_url']) && $_POST['image_url'] != ""){ 

echo 'true'; 

} else { 

echo 'false'; 

} 

这会给你所需输出

+0

为什么'!=“”'而不是'empty()'? – Xatenev 2014-09-26 07:54:09