![](/img/trans.png)
[英]php: how do i insert values into database from multiple dropdown list and added one text along with it
[英]How to insert multiple selects dropdown values in database, php codeigniter
我正在嘗試選擇多個員工並將所有員工插入到數據庫中項目表的同一行和同一列中。 但是現在我只能在數據庫中插入一個值。你能幫我如何在數據庫中插入所有選定的數據嗎? 這是我的 Project.php 控制器
public function index ()
{
// print_r($_REQUEST);
// die;
$data['company_name'] = $this->project_model->getAllCompanyName();
$data['project'] = $this->project_model->getProjectDetails();
//echo "<pre>";
//print_r($data);die;
$this->load->view('admin/project/index',$data);
}
function add()
{
$this->form_validation->set_rules('Pname', 'Project Name', 'required');
$this->form_validation->set_rules('Cname', 'Client Name' , 'required');
$this->form_validation->set_rules('PassignTo', 'Company', 'required');
$this->form_validation->set_rules('manager', 'Manager' , 'required');
$this->form_validation->set_rules('staff', 'Support Staff', 'required');
$data['company_name'] = $this->project_model->getAllCompanyName();
$data['project'] = $this->project_model->getProjectDetails();
if ($this->form_validation->run() ==true)
{
$this->project_model->add();
$this->session->set_flashdata ('success','Project Added Sucessfully');
// print_r($_REQUEST);
// die;
// echo "<pre>";
redirect('admin/project/index',$data);
}
else{
$this->load->view('admin/project/add',$data);
}
public function getManager()
{
//echo json_encode ("sdf"); die;
//print_r($_REQUEST);
//die;
$company_name = $this->input->post('company_name');
$getallmanager = $this->project_model->get_manager_query($company_name);
$getallstaff = $this->project_model->get_all_staff($company_name);
$all_the_mangers = '';
$all_the_staffs = '';
if(count($getallmanager)>0)
{
foreach ($getallmanager as $manager){
$all_the_mangers .='<option value="' .$manager->first_name.'">'.$manager->first_name.'</option>';
}
}
if(count($getallstaff)>0)
{
foreach ($getallstaff as $staff){
$all_the_staffs .='<option value="' .$staff->id.'">'.$staff->first_name.'</option>';
}
}
$result = array('manager'=>$all_the_mangers,'staffs'=>$all_the_staffs);
echo json_encode($result);die;
}
這是 Project_model.php 模型
function add()
{
$arr['project_name'] = $this->input->post('Pname');
$arr['client_name'] = $this->input->post('Cname');
$arr['company'] = $this->input->post('PassignTo');
$arr['project_manager'] = $this->input->post('manager');
$arr['support_staff'] = $this->input->post('staff');
$this->db->insert('projects',$arr);
}
public function get_all_staff($company_name)
{
$query = $this->db->get_where('user_login', array('company_name' => $company_name,'role !='=>'manager'));
return $query->result();
}
這是視圖
<div class="form-group col-md-4">
<label for="pwd">Add Support Staff</label>
<select id="addStaffMulti" placeholder="Selecct" multiple="multiple" name="staff" value="<?php echo set_value('staff'); ?>">
<div class="alert-danger"><?php echo form_error('staff'); ?></div>
<option value="">Select Staff</option>
</select>
</div>
這是腳本
<script type="text/javascript">
$(document).ready(function(){
$('#company').on('change' , function() {
var company_name = $(this).val();
if(company_name == '')
{
$('#manager').prop('disabled', true);
$('#addStaffMulti').prop('disabled', true);
}
else
{
$('#manager' ).prop('disabled', false);
$('#addStaffMulti').prop('disabled', false);
var url = "<?php echo base_url()?>getManager";
//alert(url);
//return false;
$.ajax({
url:"<?php echo base_url()?>getManager",
type: "POST",
data: { 'company_name' : company_name},
dataType:'json',
success: function(data){
//alert('ok');
console.log(data);
$('#manager').html(data.manager);
$('#addStaffMulti').html(data.staffs);
$('#addStaffMulti').multiselect('rebuild');
},
error: function(event){
console.log(event);
alert('Error occur...');
}
});
}
});
});
</script>
您應該將 db 字段類型更改為文本,並且在插入該多字段時,您需要 json_encode( $your_array ) 它。 這將字符串化數組。 當你需要閱讀它之后,你應該使用反向函數 - json_decode( $your_array, true )。 第二個參數是是數組還是對象。
所以那條線會變成這樣:
$arr['support_staff'] = json_encode($this->input->post('staff'));
在你讀完之后:
$support_staff = json_decode($this->db->support_staff, true );
項目模型.php
function add()
{
$arr['project_name'] = $this->input->post('Pname');
$arr['client_name'] = $this->input->post('Cname');
$arr['company'] = $this->input->post('PassignTo');
$arr['project_manager'] = $this->input->post('manager');
$arr['support_staff'] = $this->input->post('staff');
$value = implode(",",($this->input->post('staff')));
$arr['support_staff'] = $value;
$this->db->insert('projects',$arr);
}
project.php 視圖
<div class="form-group col-md-4">
<label for="pwd">Add Support Staff</label>
<select id="addStaffMulti" placeholder="Selecct" multiple="multiple" name="staff[]" value="<?php echo set_value('staff'); ?>">
<div class="alert-danger"><?php echo form_error('staff'); ?></div>
<option value="">Select Staff</option>
</select>
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.