Сначала проверьте значение, прежде чем поместить его в оператор if (ЗАКРЫТО)

У меня есть форма со следующими выбранными входами:

В первом файле:

<select class="form-control" name="city" id="city">
<option value="">--</option>
<option value="breda">Breda</option>
</select>

<select class="form-control" name="interior" id="interior">
<option value="">--</option>
<option value="gestoffeerd">Gestoffeerd</option>
</select>

Во втором файле я получаю эти данные

$search_city = $_POST['city'];
$search_interior = $_POST['interior'];

У меня также есть переменная: $ result это массив, который я извлек из API. В этом массиве несколько домов. Каждый дом имеет свои технические характеристики как города, так и интерьера.

Я хочу, чтобы все дома основывались на том, что я выбрал в форме выбора.

Когда я, например, выбрал город, но не интерьер, я получу все дома из этого города.

Когда я, например, выбрал интерьер, но не город, я получу все дома с этим интерьером из всех городов.

Когда я, например, ничего не выбрал, я получу все дома

if(isset($search_city) == $result['city'] && isset($search_interior) == $result['interior']){
// echo all results based on selected values
}

-5

Решение

В вашей форме вы можете изменить HTML-код первого параметра раскрывающегося списка на пустой:

    <select class="form-control" name="city" id="city">
<option value="">--</option>
<option value="breda">Breda</option>
</select>

<select class="form-control" name="interior" id="interior">
<option value="">--</option>
<option value="gestoffeerd">Gestoffeerd</option>
</select>

Затем в своей логике PHP вы бы проверили, пусто ли оно:

if ( !empty( ucfirst($_POST['city'] ) ){
$city = ucfirst($_POST['city'];
}

if ( !empty( ucfirst($_POST['interior'] ) ){
$city = ucfirst($_POST['interior'];
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]