我是PHP新手。我有这个输入,用于将pulmultipile数组添加到MySQL数据库中。
<input name="image_url[]" id="ads" type="text" value="">
现在,我需要检查是否有空值发送到数据库。
我用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
注意:使用空值而非空值检查演示!u参见输出:false
在输入名称中使用[]
创建一个值数组。如果您只需要一个值,而不需要多个值,那么请删除输入名称中的[]
,否则您将在$_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';
}
}
首先像这样使用Html(如果您输入单个值)
<input name="image_url" id="upload" type="text" value="">
然后在PHP代码检查像这个
if(isset($_POST['image_url']) && $_POST['image_url'] != ""){
echo 'true';
} else {
echo 'false';
}
这将为您提供所需的输出