【问题标题】:Validating Dynamically generated field arrays in codeigniter在 codeigniter 中验证动态生成的字段数组
【发布时间】:2013-04-09 06:14:51
【问题描述】:

我有一个表单,其中一些字段是动态生成的。

<table class="insideform">
                            <tr>
                                <td>
                                <script>
                                    $(document).ready(function() {
                                        $('#addrange').click(function(){
                                            var value = '<tr><td><input type="number" size="10" id="from" name="from[]" value=""></td>';
                                                value += '<td><input type="text" size="10" id="to" name="to[]" value=""></td>';
                                                value += '<td><input type="text" id="disprice" name="disprice[]" /></td>';
                                                value += '<td valign="middle" id="removerange">x</td>';
                                                value += '<td id="to_err" class="err"></td></tr>';

                                            $('.discounttable').append(value);
                                        });

                                        $('body').on("click","#removerange",function(){
                                            $(this).parent().remove();
                                        });

                                        $('#maxqty').change(function(){
                                            var value = $('#maxqty').val() + " Above";
                                            $('#maxabove').text(value);
                                        });

                                    });
                                </script>
                                    <table class="discounttable">
                                        <tr>
                                            <th>From</th>
                                            <th>To</th>
                                            <th>Price</th>
                                        </tr>
                                        <tr>
                                            <td colspan="2" align="right"><span id="maxabove">10 Above</span></td>
                                            <td><input type="text" name="maxaboveinput" id="maxaboveinput" /></td>
                                            <td id="maxaboveinput_err" class="err"></td>
                                        </tr>
                                        <tr>
                                            <td><input type="text" size="10" id="from" name="from[]" value=""></td>
                                            <td><input type="text" size="10" id="to" name="to[]" value=""></td>
                                            <td><input type="text" /></td>
                                            <td valign="middle" id="removerange">x</td>
                                            <td id="to_err" class="err"></td>
                                        </tr>
                                    </table> <input type="button" name="addrange" id="addrange" value="Add Row"/>

我想验证 codeignitor 中的所有 to[], from[] 字段, 我使用 ajax 调用来验证表单这里是代码:

$('#submit').click(function(){
        console.log($("#form").serialize());
        $.ajax({
                url:'<?php echo base_url(); ?>index.php/placeorder/valids',
                type:'POST',
                data:$("#form").serialize()
                }).done(function(data){
                    $("#validations").html(data);});

我尝试在控制器中编写此代码:

$this->load->helper(array('form', 'url'));
 $this->load->library('form_validation');
 $this->form_validation->set_message('%s required', '*required');



 $this->form_validation->set_rules('to[]', 'To field', 'required|xss_clean');
$this->form_validation->set_rules('from[]', 'From field', 'required|xss_clean');

 $errors = array();

 if ($this->form_validation->run() == FALSE)
    {
        echo validation_errors();

    }

它不验证我的字段......并且validation_errors 没有显示任何我试图将它解析为json并回显json代码的东西......'to'和'from'在json中显示为空。 有人可以帮忙吗?

【问题讨论】:

    标签: php arrays codeigniter validation jquery


    【解决方案1】:

    样品控制器:

      public function sample_controller() {
    
        if ($this->input->post()) {
          $this->load->library('form_validation');
          $this->form_validation->set_rules('from[]', 'From field', 'required|xss_clean');
          if ($this->form_validation->run() == TRUE) {
            echo 'success';
          } else {
            echo validation_errors();
          }
        }
        $this->load->view('sample_view');
      }
    

    示例视图:

    <form method="post">
      <input type="text" size="10" id="from" name="from[]" value="dino"/>
      <input type="text" size="10" id="from" name="from[]" value="babu"/>
      <input type="text" size="10" id="from" name="from[]" value="kannampuzha"/>
      <input type="submit" value="Go" />
    </form>
    

    // 输出

    1) 如果任何文本框为空

    The From field field is required.
    

    2) 如果所有文本框都已填满

    success
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-07
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多