Пока не может комментировать.
Возможно, попробуйте закрыть ярлык перед выбором.
<label id="city">
<h4>city</h4>
</label>
<select name="city">
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
</select>
и, возможно, сделайте
<?php echo "<pre>".print_r($_POST,true)."<pre>";
, чтобы увидеть, какие значения установлены .
И, как другие предлагали, проверка значения пуста ()
if(!isset($_POST['city'])||empty($_POST['city']))
Возвращает true, если город пуст, не имеет значения или true, если он не существует.
Надеюсь, это поможет!
Редактировать 1:
Также, поскольку код php, вероятно, находится на той же странице, можно просто пропустить атрибут действия.
<form method="POST" class="contact">
<label for="city">
<h4>city</h4>
</label>
<select id="city" name="city">
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
</select>
</form>
также используйте атрибут for с идентификатором поля ввода, которое вы хотите, чтобы оно представляло