2013-04-09 71 views
0

我有一个窗体,其中一些字段是动态生成的。验证在codeigniter动态生成的字段数组

<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 []字段, 我使用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代码...的“到”和“从”秀在json中空荡荡的。 任何人都可以帮忙吗?

回答

0

样品控制器:

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

does not work ...: -/ – 2013-04-09 06:24:50

+0

我测试n工作正常。你可以检查吗? – Dino 2013-04-09 06:33:12