当前位置: 首页 > 面试题库 >

在Codeigniter中使用jQuery Ajax进行表单验证

柏阳炎
2023-03-14
问题内容

如果我不想刷新页面,该如何在Codeigniter中进行表单验证?基本上我这样做:

    $config = array(
            array(
                    'field' => 'c_name',
                    'label' => 'Name',
                    'rules' => 'trim|required'
            ),
            array(
                    'field' => 'c_job',
                    'label' => 'Job',
                    'rules' => 'trim|required',
                    )
    );
    $this->form_validation->set_rules($config);
    if($this->form_validation->run() == true)
            {
                $this->load->model('model');
                //.....
            }
    else{
            $this->load->view('view');
        }

但是,如果我使用ajax发送数据并且页面没有刷新,我该如何进行表单验证?

编辑:

谢谢@ Amra Kojon。很好并且可行,但是新的问题是:

if ($this->form_validation->run() == FALSE) {
                echo validation_errors();
                } 
                else {
                        //echo 'hi';


                        $value = $this->input->post('value');

                        $values = array(
                                'c_name' => $value['c_name'],
                                'c_job'=> $value['c_job'],
                                'c_address'=> $value['c_address'],
                                'c_phone'=> $value['c_phone'],
                                'c_mail'=> $value['c_mail'],
                                'c_state'=> $value['c_state'],
                                'c_intrest'=> $value['c_intrest'],
                                'c_added_info'=> $value['c_added_info']
                        );


                        $add = $this->customers_model->add_customer($values);
                        echo $add;
                }

如果我只是在其他部分说回声“某事”,它可以工作,并且如果验证还可以,则回声你好,但是如果我在数据库中写入主题(值数组中包含数据且不是ajax方式,则插入日期),它不起作用,其他部分不起作用!!!


问题答案:

如果您提供了JS-jQuery Ajax代码,则可以更有效地理解您的问题。请尝试以下说明…

1)获取获取表单值并传递给表单

    <script type="text/javascript"> 
      $(document).ready(function(){
        var dataString = $("#FormId").serialize();
        var url="ControllerName/MethodName"
            $.ajax({
            type:"POST",
            url:"<?php echo base_url() ?>"+url,
            data:dataString,
            success:function (data) {
                alert(data);
            }
            });     
      })
    </script>

控制器:

  1. 将构造中的库form_validation加载为…

$ this-> load-> library(’form_validation’);

$ this-> load-> helper(’form’);

  1. 现在将您的控制器写为…
        function MethodName {
    $this->form_validation->set_error_delimiters('', '');
    $this->form_validation->set_rules('fname','First Name', 'required');
    $this->form_validation->set_rules('lname','Last Name', 'required');
    $this->form_validation->set_rules('email','Email Address','required|valid_email|is_unique[sec_users.email]');
    if ($this->form_validation->run() == FALSE) {
        echo validation_errors();
    } 
    else {
      // To who are you wanting with input value such to insert as 
      $data['frist_name']=$this->input->post('fname');
      $data['last_name']=$this->input->post('lname');
      $data['user_name']=$this->input->post('email');
      // Then pass $data  to Modal to insert bla bla!!
    }


}

希望能在我的应用程序中正常工作。

如果是最佳答案,请接受。

谢谢!



 类似资料:
  • 如果您不得不跟浏览器提交的表单数据打交道,视图函数里的代码将会很快变得 难以阅读。有不少的代码库被开发用来简化这个过程的操作。其中一个就是 WTForms , 这也是我们今天主要讨论的。如果您发现您自己陷入处理很多表单的境地,那您也许 应该尝试一下他。 要使用 WTForms ,您需要先将您的表单定义为类。我建议您将应用分割为多个模块 (大型应用) ,这样的话您仅需为表单添加一个独立的模块。 挖掘

  • 问题内容: 到目前为止,我已经使用纯JavaScript来验证表单,但是我需要在组合中添加mysqli查询。只有我对jquery和ajax不太了解。我可以做一个简单的登录表格,但这有点复杂。谁能给我有关如何添加jquery / ajax组件来验证这一点的任何指示: 问题答案: 您可以做的是发送$ .post像这样: 在你的 记得: 如果您要发布表单,请提交以添加到您的javascript函数中以手

  • 我试图在我的Codeigniter项目中创建一组表单验证规则,以便在第一组验证失败时,第二个验证集不应运行。 我在CI手册里找到了这个: 我知道我现在可以分别运行每个集合的验证($this- 问题是,当我使用$config数组时,当表单post失败时,错误不会添加到表单验证类中(因此不会显示)。当我不使用规则集,但只使用$this时,它确实添加并显示了错误- 当使用一组规则输入无效表单数据时,没有

  • 本文向大家介绍AngularJS使用angular-formly进行表单验证,包括了AngularJS使用angular-formly进行表单验证的使用技巧和注意事项,需要的朋友参考一下 当验证表单中有很多字段时,这时候可能希望把html的生成以及验证逻辑放到controller中,在页面,也许是这样的: 然后,在controller中定义各个字段以及验证。angular-formly就是为这个需

  • 问题内容: 我有这种形式:http : //jsfiddle.net/dfJeN/ 如您所见,输入的名称值是静态设置的: ,则表单验证可以正常工作(添加一些内容并从输入中删除所有文本,必须显示一个文本)。 然后,我尝试动态设置名称值:http : //jsfiddle.net/jNWB8/ 然后我将其应用于我的验证 (此模式将在ng-repeat中使用),但我的表单验证已损坏。它在浏览器中已正确解

  • 本文向大家介绍使用JavaScript进行表单校验功能,包括了使用JavaScript进行表单校验功能的使用技巧和注意事项,需要的朋友参考一下 文本框校验 以下是文本框的校验步骤。 1.获取待校验的文本框value值, 2.对value值设置判定条件,使用if语句或switch语句实现。 3. 若满足条件,则校验通过,返回值为true。 4. 若不满足条件则返回值为false,替换文本输出校验的提