установка правил проверки формы для form_radio () - PullRequest
0 голосов
/ 31 августа 2010

Здравствуйте. Я хочу, чтобы form_radio () было установлено в качестве обязательного поля в codeigniter. Есть идеи, как мне это сделать?

это моя форма:

           echo form_radio('radio','earing',FALSE)."earings";
           echo form_radio('radio','bag',FALSE)."bag";
           echo form_radio('radio','bracelet',FALSE)."bracelet";
           echo form_close();

конечно, только один из них должен быть подан каждый раз ...

спасибо заранее!

Ответы [ 4 ]

0 голосов
/ 01 сентября 2010

То, как я решил это до сих пор (и мне кажется, это нормально) ... это простое утверждение if в моем контроллере:

 if($this->input->post('upload') && $this->input->post('radio')){
             $this->Gallery_model->do_upload();
          }

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

0 голосов
/ 31 августа 2010

Один из способов избежать необходимости проверки переключателей - просто установить флажок по умолчанию. Таким образом, вам даже не нужно беспокоиться, если пользователь не выбрал переключатель, так как после того, как он установлен, всегда будет один.

Это не отвечает на конкретный вопрос о том, как проверять формы в CodeIgnitor (на что, к сожалению, я не знаю ответа), но может оказаться полезным для достижения вашей общей цели.

0 голосов
/ 31 августа 2010

Ваш код должен быть передан в контроллер, если вы хотите использовать проверку.

class Form extends Controller {

    function index()
    {
        $this->load->helper(array('form', 'url'));
        $this->load->library('form_validation');

        $this->form_validation->set_rules('radio', 'Product', 'required');

        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view('myform');
        }
        else
        {
            $this->load->view('formsuccess');
        }
    }
}

Поскольку вам действительно не нужна проверка для RADIO.Когда вы сгенерируете переключатель, выберите один из них, и он всегда будет иметь значение.

Попробуйте так, это должно работать лучше.Он будет генерировать радио-боксы с 1-ым, установленным по умолчанию, если значение для радио не установлено:

echo form_radio('radio','earing', set_radio('radio', 'earing', TRUE))."earings";
echo form_radio('radio','bag', set_radio('radio', 'bag'))."bag";
echo form_radio('radio','bracelet', set_radio('radio', 'bracelet'))."bracelet";
echo form_close();
0 голосов
/ 31 августа 2010

Вам необходимо добавить проверку к событию отправки формы.см. пример ниже:

<form action="page.php" method="post" onsubmit="return isValid(this);">
    <fieldset>
        <legend>Radio Buttons</legend>

        <input type="radio" value="1" name="myRadio" />Selection 1<br />
        <input type="radio" value="2" name="myRadio" />Selection 2<br />
        <input type="radio" value="3" name="myRadio" />Selection 3<br />
    </fieldset>

    <input type="submit" name="submitit" value="Submit" />
    <input type="reset" name="reset" value="Clear" />
</form>

<script type="text/javascript">

    function isValid(frm) {
        //  Initialize return value
        var isChecked = false;

        //  Check if radio was selected
        for (var i=frm.myRadio.length-1; i > -1; i--) {
            if (frm.myRadio[i].checked) {
                isChecked = true;
                break;
            }
        }

        if (isChecked == false) {
            alert("You must select a radio button");
            //  Data is invlaid,
            return false;
        }

        //  Everything is ok, continue with form submit
        return true;
    }
</script>
...