Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为表单设置表单验证规则\u radio()_Php_Codeigniter_Validation_Radio - Fatal编程技术网

Php 为表单设置表单验证规则\u radio()

Php 为表单设置表单验证规则\u radio(),php,codeigniter,validation,radio,Php,Codeigniter,Validation,Radio,您好,我想在codeigniter中设置一个form_radio()作为必填字段,有什么办法吗 这是我的表格: echo form_radio('radio','earing',FALSE)."earings"; echo form_radio('radio','bag',FALSE)."bag"; echo form_radio('radio','bracelet',FALSE)."bracelet"; e

您好,我想在codeigniter中设置一个form_radio()作为必填字段,有什么办法吗

这是我的表格:

           echo form_radio('radio','earing',FALSE)."earings";
           echo form_radio('radio','bag',FALSE)."bag";
           echo form_radio('radio','bracelet',FALSE)."bracelet";
           echo form_close();
当然,每次只需要提交其中一份


提前谢谢

您需要将验证添加到表单的提交事件中。 见下例:

<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>

单选按钮
选择1
选择2
选择3
函数有效(frm){ //初始化返回值 var isChecked=false; //检查是否选择了收音机 对于(var i=frm.myRadio.length-1;i>-1;i--){ if(frm.myRadio[i].已选中){ isChecked=true; 打破 } } 如果(isChecked==false){ 警报(“您必须选择单选按钮”); //数据被保存, 返回false; } //一切正常,继续表单提交 返回true; }
避免验证单选按钮的一种方法是在默认情况下选中一个单选按钮。这样,如果用户没有选择单选按钮,您甚至不必担心,因为一旦选中了单选按钮,就会始终选中一个


这并没有回答关于如何在CodeIgnitor中验证表单的具体问题(很遗憾,我不知道答案),但它可能对您实现总体目标很有用。

如果您想使用验证,您的代码需要提交给controller

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');
        }
    }
}
顺便说一句,你不需要对无线电进行验证。生成单选按钮时,选中一个,它将始终具有值

像这样试试,这样会更好。如果未设置收音机的值,它将生成默认选中第一个的收音机框:

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();

到目前为止,我解决这个问题的方法(在我看来还可以)…是在我的控制器中使用一个简单的if语句,如下所示:

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

但是我想知道是否有一种更合适的方法使用表单验证类,所以我不会将此标记为答案…

使用javascript?谢谢!我会检查它…虽然我真的希望有人能帮我解决它的codeigniter,因为它不可能是那么困难,我只是似乎卡住了!规则如下: