codeigniter复选框内爆函数错误

时间:2016-06-07 08:03:14

标签: javascript php html codeigniter

这是我的观点

<input type="text" name="name" class="form-control" placeholder="name" />
<div class="col-sm-12">
    <select name="speciality"  class="form-control" required >
        <option value="" selected="selected" >Liste speciality</option>
        <option value="ag" >spec1</option>
        <option value="al" >spec2</option>
        <option value="pvc">spec3</option>
        <option value="MEDC">spec4</option>
    </select>
</div>

<div class="col-sm-9">
    <label class="checkbox-inline">
        <input type="checkbox"  value="parquet" name="products[]">
        product1
    </label>

    <label class="checkbox-inline">
        <input type="checkbox"  value="fplancher" name="products[]">
        product2
    </label>

    <label class="checkbox-inline">
        <input type="checkbox"  value="fauxplafonddem" name="products[]">
        product3
    </label>

    <label class="checkbox-inline">
        <input type="checkbox"  value="cloison" name="products[]">
        product4 
    </label>

    <label class="checkbox-inline">
        <input type="checkbox"  value="cloisonamovible" name="products[]"> 
        product5 
    </label>

    <div class="bottom">
        <button class="btn btn-primary" name="btnAdd" value="1"  type="submit"> <i class="fa fa-mail-reply-all"> &nbsp;save</i> </button>
        <button class="btn btn-default" type="reset" > <i class="fa fa-ban">&nbsp;cancel</i></button>
    </div>
</div>

这是我的控制器

public function add() {
         $prod=implode(',',$this->input->post('products'));
           $data=array('nomsoc'=>$this->input->post('name'),
                    'specialitesoc'=>$this->input->post('speciality'),
                    'produitssoc'=>$prod);
           if ($this->input->post("btnAdd", false))
            { 
            if($this->SocieteModel->add($data))
                {
                $this->session->set_flashdata('message', 
                '<div class="alert alert-success" role="alert">Société ajoutée avec succès </div>');
                redirect("/societe/");
            } 

       }
    $this->layout->title(' campany Title'); // Set page title
                $this->LoadViewBlocks("societe","","",true,true,true);
                $data["bodyId"]="register-bg";
                $this->layout->view('backend/societe/add', $data);
        }

当我加载View以添加新的campany时,我收到错误:

遇到PHP错误 严重性:警告消息:implode():传递的参数无效 行号:41

任何团体都可以帮忙!

1 个答案:

答案 0 :(得分:0)

  1. 遇到PHP错误严重性:警告消息:implode():传递的参数无效行号:41
  2. 如果$this->input->post('products')值为空或不是数组,则会出现上述错误。确保你有数组值。

    1. 我已经尝试过您的代码了。它只是工作正常。请仔细阅读。

      我使用了这个视图页面。

      <form action="<?php echo base_url(); ?>index.php/forms/add" method="post"><input type="text" name="name" class="form-control" placeholder="name" />
        <div class="col-sm-12">
           <select name="speciality"  class="form-control" required >
                   <option value="" selected="selected" >Liste speciality</option>
                   <option value="ag" >spec1</option>
                   <option value="al" >spec2</option>
                   <option value="pvc">spec3</option>
                   <option value="MEDC">spec4</option>                     
           </select>
        </div>
          <div class="col-sm-9">
             <label class="checkbox-inline">
               <input type="checkbox"  value="parquet" name="products[]">
                product1</label>
              <label class="checkbox-inline">
               <input type="checkbox"  value="fplancher" name="products[]">    product2</label>
           <label class="checkbox-inline">
           <input type="checkbox"  value="fauxplafonddem" name="products[]">
                      product3</label>
                      </div>
                      <label class="checkbox-inline">
                       <input type="checkbox"  value="cloison" name="products[]">
                                     product4 </label>
                       <label class="checkbox-inline">
                        <input type="checkbox"  value="cloisonamovible" name="products[]"> product5 </label>
           <div class="bottom">
           <button class="btn btn-primary" name="btnAdd" value="1"  type="submit"> <i class="fa fa-mail-reply-all"> &nbsp;save</i> </button>
           <button class="btn btn-default" type="reset" > <i class="fa fa-ban">&nbsp;cancel</i></button>
                      </div>
      
                      </form>
      
    2. 在mycontroller中

      public function add() {
               $prod=implode(',',$this->input->post('products'));
                 $data=array('nomsoc'=>$this->input->post('name'),
                          'specialitesoc'=>$this->input->post('speciality'),
                          'produitssoc'=>$prod);
                 print_r($data); exit();
                 if ($this->input->post("btnAdd", false))
                  { 
                  if($this->SocieteModel->add($data))
                      {
                      $this->session->set_flashdata('message', 
                      '<div class="alert alert-success" role="alert">Société ajoutée avec succès </div>');
                      redirect("/societe/");
                  } 
      
             }
                      $this->layout->title(' campany Title'); // Set page title
                      $this->LoadViewBlocks("societe","","",true,true,true);
                      $data["bodyId"]="register-bg";
                      $this->layout->view('backend/societe/add', $data);
          }
      

      虽然我使用了print_r($ data);它对我有用。