这是我的观点
<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"> save</i> </button>
<button class="btn btn-default" type="reset" > <i class="fa fa-ban"> 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
任何团体都可以帮忙!
答案 0 :(得分:0)
如果$this->input->post('products')
值为空或不是数组,则会出现上述错误。确保你有数组值。
我已经尝试过您的代码了。它只是工作正常。请仔细阅读。
我使用了这个视图页面。
<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"> save</i> </button>
<button class="btn btn-default" type="reset" > <i class="fa fa-ban"> cancel</i></button>
</div>
</form>
在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);它对我有用。