За последние 24 часа нас посетили 54232 программиста и 1774 робота. Сейчас ищут 952 программиста ...

Сохранение состояния списка и радиобатна

Тема в разделе "Прочие вопросы по PHP", создана пользователем rtyv, 21 июл 2015.

  1. rtyv

    rtyv Новичок

    С нами с:
    20 июл 2015
    Сообщения:
    4
    Симпатии:
    0
    Подскажите пожалуйста новичку в вашем нелегком деле, столкнулся еще с такой проблемой, заполняю форму если данные введены не верно то форма не отправляется, данные которые были введены корректно должны остаться вот как это сделать средствами php, если это вообще реально. Ибо после проверки все сбрасывается на значение по умолчанию у списка
    Код (PHP):
    1. <select class="registration" name ="userStatus">
    2. <option value="1">Серебро</option>
    3. <option value="2">Золото</option>
    4. <option value="3">Платина</option>
    5. </select>
    это первый элемент
    а у радиобатна
    Код (PHP):
    1.   <input  type="radio" name="sex" value="Мужчина"checked="checked"/> Мужской <input type="radio" name="sex" value="Женщина"/> Женский
    соответственно checked элемент.
    Можно это сделать на php или это js нужно подключать?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    К.О. утверждает: надо передавать считанные из переменной $_POST значения во вновь выводимую форму. Уж не знаю используешь ли ты какой-то шаблонизатор, у меня оно выглядит так:

    Код (PHP):
    1. $form = $this->collectPost(['userStatus', 'sex', 'anything']);
    2. if (!($errors = $this->validate('someGroupOfRules', $form))) {
    3.   // ... запись в таблицу, отсылка писем, списывание денег и т.п. полезная работа
    4.   $this->redirect('homepage', 'Ok. You did it!');
    5. }
    6. // иначе, выводим форму снова
    7. $this->render('tplName', $form + ['errors' => $errors]));
    Шаблон использует свой язык, но в конце концов он компилируется во что-то вроде:
    Код (PHP):
    1. <select class="registration" name ="userStatus">
    2. <option value="1" <?= ($userStatus == 1) ? 'checked' : ''?>>Серебро</option>
    3. <option value="2" <?= ($userStatus == 2) ? 'checked' : ''?>>Золото</option>
    4. <option value="3" <?= ($userStatus == 3) ? 'checked' : ''?>>Платина</option>
    5. </select>
     
  3. rtyv

    rtyv Новичок

    С нами с:
    20 июл 2015
    Сообщения:
    4
    Симпатии:
    0
    ну собственно так и делаю, только всех подходов пока не знаю.
    Спасибо, буду плыть в этом направлении.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв