Я проверяю массивы $ _POST, но не могу найти способ проверить, является ли массив пустым. Кто-нибудь знает, как я могу это проверить. я пытался !empty()
а также isset()
, но оба способа вернули истину.
Моя HTML-форма с полем выбора, текстовым полем и кнопкой отправки:
<form method="post">
<select name="product_name[]">
<option value="Camera">Camera</option>
<option value="Radio">Radio</option>
<option value="Television">Television</option>
</select>
<input name="product_price[]" />
<input type="submit" name="submit">
</form>
Мой PHP:
if( ! empty( $_POST['product_name'] ) && ! empty( $_POST['product_price'] ) ) {
print_r( $_POST['product_name'] );
print_r( $_POST['product_price'] );
}
Вернуть:
Array ( [0] => Camera )
Array ( [0] => )
Это массив, поэтому вам нужно использовать array_filter
избавиться от пустых строк.
if(!empty($_POST['product_name']) && array_filter($_POST['product_price'])){
print_r( $_POST['product_name']);
print_r( $_POST['product_price']);
}
Может быть, вы должны просто добавить первый вариант по умолчанию в виде пустой строки? И не называйте входные данные как product_name[]
, Измените это на product_name
,
<form method="post">
<select name="product_name">
<option value="">-</option>
<option value="Camera">Camera</option>
<option value="Radio">Radio</option>
<option value="Television">Television</option>
</select>
<input name="product_price" type="text" />
<input type="submit" name="submit">
</form>
Если будет выбран первый вариант, empty()
функция должна вернуться TRUE
,
Вы объявили имя_продукта [] (следовательно, пустой массив вернет TRUE
если выбран вариант 1) вам придется изменить его на product_name
<form method="post">
<select name="product_name">
<option value="">-</option>
<option value="Camera">Camera</option>
<option value="Radio">Radio</option>
<option value="Television">Television</option>
</select>
<input name="product_price" />
<input type="submit" name="submit">
</form>
Хорошо, я нашел решение. Предыдущий ответ был неверным, надеюсь, это поможет вам:
<form method="post">
<select name="product_name[]">
<option value="Camera">Camera</option>
<option value="Radio">Radio</option>
<option value="Television">Television</option>
</select>
<input name="product_price[]" />
<input type="submit" name="submit">
</form>
<?php
if( !empty( $_POST['product_name'] ) && !count( array_filter($_POST['product_price'])) ==0 ) {
print_r( $_POST['product_name'] );
print_r( $_POST['product_price'] );
}
?>