php держать динамически сгенерированный переключатель после отправки

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

У меня есть массив $genderValues, который я перебираю, чтобы отобразить два переключателя внутри формы. Форма имеет другие входные данные с проверкой. Когда пользователь проверяет мужчину или женщину, я хочу, чтобы этот переключатель оставался отмеченным, когда он пытается отправить форму, но не проходит другую проверку, а не очищает ее сам.

$genderValues = ['Male','Female'];

function ending ($genderVal) {

        if (isset($_POST['gender']) && ($_POST['gender'] == $genderVal)) {
            $ending = " checked />";
                return $ending;
        }
        else{
            $ending = "/>";
            return $ending;
         }
    }

    foreach($genderValues as $genderVal){

        echo "<label class='radio' for=" . $genderVal . ">" . $genderVal . "</label>
        <input type='radio' name='gender' id=" . $genderVal . " value=" . $genderVal . ending($genderVal);

    }

person Jordan Carter    schedule 06.02.2016    source источник
comment
вопрос не ясен. Можешь обновить??   -  person Drudge Rajen    schedule 06.02.2016
comment
@Drudge Хорошо, я сделал. Это помогает?   -  person Jordan Carter    schedule 06.02.2016


Ответы (1)


Измените эту строку:

<input type='radio' name='gender' id=" . $genderVal . " value=" . $genderVal . ending($genderVal);

К этому:

<input type='radio' name='gender' id=" . $genderVal . " value='" . $genderVal . "' " . ending($genderVal);
person Sha7x    schedule 06.02.2016
comment
Спасибо, это сработало. Первоначально я пытался сделать что-то подобное раньше, но когда я обнаружил, что мой код работает без помещения значения в кавычки, я просто подумал, что php умнее и сам это понимает. Лучше всего сделать то же самое для идентификатора? - person Jordan Carter; 06.02.2016