2016-10-09 43 views
0

我正在使用一种窗体,其中包含一个动态添加一对输入字段的div。Codeigniter阵列后端验证

VIEW:

<?php echo form_open_multipart('location/add'); ?> 
<div> 
<input type="text" name="title[]"/> 
<div id="infoMessage"><?php echo form_error('title[]'); ?></div> 
</div> 
<div> 
<input type="text" name="desc[]"/> 
<div id="infoMessage"><?php echo form_error('desc[]'); ?></div> 
</div> 
<div> 
<input type="text" name="link[]"/> 
<div id="infoMessage"><?php echo form_error('link[]'); ?></div> 
</div> 

<input type="submit" name="" value="enter"> 
<?php echo form_close(); ?> 

enter image description here

现在,起初我不希望这3个输入字段验证,但我想后端验证为所有要添加输入字段动态(通过点击+)按下提交按钮。

控制器:

public function add() 
    { 

     $this->form_validation->set_rules('title[]','Title','required'); 
     $this->form_validation->set_rules('desc[]','Description','required'); 
     $this->form_validation->set_rules('link[]','Link','required'); 

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

    } 

回答

0

可以使用自定义的回调验证函数 EX:

public function add() 
{ 
    $this->form_validation->set_rules('title', 'Title', 'callback_title_validate'); 
    if ($this->form_validation->run() == FALSE) 
    { 
     $this->load->view('test'); 
    } 
    else 
    { 
     //.... 
    } 
} 

function title_validate($title){ 
    foreach($title as $key=>$value){ 
     if($title[$key]==null || $title[$key]==false){ 
     $this->form_validation->set_message('title_validate', 'The Title field is Required.'); 
      return FALSE; 
     } 
     } 
    return TRUE; 
} 
+0

见犹提交的初始投入也将验证吧? – Shihas

+0

不,你将不得不为你想要验证的所有字段自定义验证函数。 –

+0

我想你没有得到我的问题:( – Shihas