2014-09-26 2 views
0

Я новичок в PHP. У меня есть этот вход для добавления массива pultiple в базу данных MySQL.PHP check array с использованием функции empty()

<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) "" 
    } 

Live Demo: http://madenade.besaba.com/php/?action=editnews&id=10

ПРИМЕЧАНИЕ: проверить в демо с пустым значением, а не пустые значения! u see output: false

+1

try isset ($ _ POST ['image_url']), чтобы увидеть, что значение установлено и не равно –

+0

Прочитайте инструкции о том, что считается 'empty' –

ответ

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

Это работало, когда у нас есть одно поле ввода, и этот код проверяет, есть ли один вход box имеют значение send и вставьте все поля ввода (пустое значение + не пустое значение) в базу данных. Мне нужно вставить только пустое значение в мою базу данных. ' 'Мне нужно отправить только значение' 123' и '456' в базу данных. –

+0

@ EricFavoni, вы можете сохранить только значения, необходимые в ветке 'if', и удалить то, что вам не нужно в ветке' else'. – rid

+0

См. Мое новое редактирование. –

0

Первое использование Html Like This (если ур ввода одиночное значение)

<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