我正在努力寻找一种方法来编辑从数据库中提取的多选值。
有3个表供应商(supplier_Id,supplier_name,location等等),材料(material_id,material_name)和 supplier_material (id,supplier_id,material_id)。 在这种关系中,供应商可以拥有多种材料。
例如,supplier_A有木材和钢材。我想把它改成木头或添加纤维,所以我有3种材料..我可以在带有选择值的php的页面中查取和查看它,但是我不能改变它们或添加更多
这是我的控制者:
public function edit_supplier($sup_id) {
$data['data_material'] = $this->dashboard_model->get_material_list();
$data['data_location'] = $this->dashboard_model->get_location_list();
$data['edit_supplier'] = $this->dashboard_model->m_edit_supplier($sup_id);
$data['main_content'] = 'supplier/edit_supplier';
$this->load->view('includes/template', $data);
}
模特:
public function m_edit_supplier($sup_id) {
$this->db->select(
'a.supplier_id, a.supplier_code, a.owner, a.company, d.location,
GROUP_CONCAT(c.material ORDER BY c.material) AS material_list');
$this->db->from('supplier a');
$this->db->join('supplier_material b', 'a.supplier_id = b.supplier_id');
$this->db->join('material c', 'c.material_id = b.material_id');
$this->db->join('location d', 'd.location_id = a.location_id');
$this->db->where('a.supplier_id', $sup_id);
$query = $this->db->get();
return $query;
}
观点:
<?php
foreach($edit_supplier->result() as $sup) :
?>
<!-- Select Material-->
<div class="form-group">
<?php echo form_error('material[]'); ?>
<label class="col-sm-2 control-label" for="inputMaterial">Material</label>
<div class="col-sm-10">
<select id="material" class="ajax-example form-control input-sm" id="inputMaterial" multiple="multiple" name="material[]">
<?php
foreach($data_material->result() as $row) :
$material = explode(',', $sup->material_list);
?>
<option
value="<?php echo $row->material_id; ?>"
<?php foreach($material as $mat) {
if($row->material == $mat) {
echo 'selected ' . ' style="color:#FFFFFF;background-color:#0078D7;"';
}
}
?>
><?php echo($row->material) ; ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
我可以使用jquery ajax查看材料的多选下拉列表,但我不知道如何比较数据库中的选定值。