PHP - Как проверить выбор опции на стороне сервера? - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть форма с опцией, в которой пользователь должен выбрать состояние. Как я могу проверить это, на стороне сервера, с чистым PHP? Если выбрана опция «Выбрать состояние», сервер вернет «недействительно».

Спасибо!

Мой HTML-код (резюме):

<select id="stateSel" name="state" onclick="stateValidation()">
        <option value="0">Select State</option> /*will return as invalid option*/
        <option value="AL">Alabama</option>
        <option value="AK">Alaska</option>
        <option value="AZ">Arizona</option>
        /*[etc, options for each state]*/
        <option value="WY">Wyoming</option>
</select>

Ответы [ 3 ]

1 голос
/ 20 апреля 2019

Вы можете сделать это следующим образом:

<?php
$valudStates = ['AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 'GA', 'HI', 
                'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 
                'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 
                'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 
                'WV', 'WI', 'WY'];
if (isset($_POST['state']) && in_array($_POST['state'], $valudStates)){
    //code for valide state
} else {
    //code for NOT valide state
}

здесь код не только проверяет наличие поля для записи state, но и сравнивает его с возможными значениями (в данном случае в штатах США).

0 голосов
/ 20 апреля 2019

Состояние по умолчанию для состояния всегда равно 0 во время загрузки, если пользователь не изменил его, вам необходимо подтвердить, как показано ниже:

НИЖЕ КОД ДЛЯ ФОРМЫ ОТПРАВИТЬ

<?php
if( $_POST['state'] == "0" ) {
  echo "Please select the state field";
}else{
  echo "Your selected state is ".$_POST['state'];//just for example purpose
}
die;
?>

OR

НИЖЕ КОД ДЛЯ ФУНКЦИИ JS

<select id="stateSel" name="state" onclick="stateValidation(this.id)">
        <option value="0">Select State</option> /*will return as invalid option*/
        <option value="AL">Alabama</option>
        <option value="AK">Alaska</option>
        <option value="AZ">Arizona</option>
        <option value="WY">Wyoming</option>
</select>
function stateValidation(id){
    var state = $('#'+id+'option:selected').val();
    if(state == '0'){
       alert("Please select the state field");
    }else{
       alert("Your selected state is "+state);
    }
}
0 голосов
/ 20 апреля 2019

Значение только выбранной опции публикуется на стороне сервера при отправке формы.

Если вы отправляете форму методом POST.

<?php

if( $_POST['state'] == "0" ) {
  // not valid
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...