HTML выберите значение 0 в проверке PHP всегда пусто
Я пытаюсь опубликовать выбранное значение и проверить, если переменная пуста.
HTML:
<select id="monitors-old" class="form-control" name="monitors-old">
<option value="">Auswählen...</option>
<option value="0" <?php if ($personData["cmo_mon"] == "0"){echo 'selected';}?>>0</option>
<option value="1" <?php if ($personData["cmo_mon"] == "1"){echo 'selected';}?>>1</option>
<option value="2" <?php if ($personData["cmo_mon"] == "2"){echo 'selected';}?>>2</option>
<option value="3" <?php if ($personData["cmo_mon"] == "3"){echo 'selected';}?>>3</option>
<option value="4" <?php if ($personData["cmo_mon"] == "4"){echo 'selected';}?>>4</option>
</select>
Результат html:
<select id="monitors-old" class="form-control" name="monitors-old">
<option value="">Auswählen...</option>
<option value="0" selected="">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
POST Check:
if (empty($_POST["monitors-old"])) {
$errors[] = "Alt-Monitore is required.";
die;
} else {
$monitors_old = validateInput($_POST["monitors-old"]);
}
значение 0 всегда пусто и скрипт запускает матрицу, все остальные значения работают. Значение 0 как ""?
Также попробовал:
<select id="monitors-old" class="form-control" name="monitors-old">
<option>Auswählen...</option>
<option selected="">0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
Это тоже работает, но та же проблема. И еще один вопрос, почему выделенное выделено =""? Я думал, что это только тег для HTML, что это значение выбрано?
validateInput:
function validateInput($value) {
$value = trim($value);
$value = stripslashes($value);
$value = htmlspecialchars($value);
return $value;
}
1 ответ
Решение
empty()
функция вернется TRUE
если значение равно 0. Перейти по ссылке
Вы можете редактировать код как,
if(isset($_POST["monitors-old"]) and $_POST["monitors-old"]!=''){
//code here
}
else{
//code here
}