php - codeigniter ajax
顯示Jquery從數據庫中選擇的數據更新 (3)
我有jQuery選擇名為centro medicos的插入形式,我可以選擇所有的數據,選擇一些數據。 如果我點擊全選這裡是結果:
假設我只選擇3個項目,然後保存。 現在我想編輯。 當編輯頁面被加載時,我想讓我選擇的3個項目加載:
如果我點擊選擇所有(選擇待辦事項)其餘項目顯示。
1-控制器
public function edit_form()
{
$edit_id= $this->uri->segment(3);
$data['ITEM_EDIT'] = $this->model->get_title_by_id($edit_id);
$data['ITEM_ALL']= $this->model->get_all_title();
$this->load->view('view_edit_form', $data);
}
2-視圖
<select class="chosen-select" multiple name="item[]">
<?php
foreach($ITEM_ALL as $item_all) {
foreach($ITEM_EDIT as $item_edit) {
if($title_edit->title== $title_all->title)
{
echo '<option value="'.$item_all->title.'" class="'.$item_all->id.'" selected>'.$item_all->title.'</option>';
}
else
{
echo '<option value="'.$item_all->title.'" class="'.$item_all->id.'" >'.$item_all->title.'</option>';
}
}
}
?>
</select>
3- jQuery
$(".chosen-select").chosen({
no_results_text: "Oops, nothing found : ",
})
我怎樣才能做到這一點?
我認為你需要更新插件狀態。
$(function(){
$(".chosen-select").trigger("chosen:updated");
})
@Diasline這個代碼工作正常,我檢查了我的系統,並轉載了你得到的錯誤。 這是使用選擇創建的示例代碼。 我已經通過點擊一個按鈕在這個代碼中給出了全選選項。 這是代碼通過它。
<html lang="en">
<head>
<link rel="stylesheet" href="docsupport/style.css">
<link rel="stylesheet" href="docsupport/prism.css">
<link rel="stylesheet" href="chosen.css">
<button id="select-all">Select All</button><br/>
<select data-placeholder="Chosen Example" multiple class="chosen-select" tabindex="18" id="multiple-label-example">
<option value="">American Black Bear</option>
<option>Asiatic Black Bear</option>
<option selected>Brown Bear</option>
<option selected>Giant Panda</option>
<option>Sloth Bear</option>
<option>Sun Bear</option>
<option>Polar Bear</option>
<option>Spectacled Bear</option>
</select>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.js" type="text/javascript"></script>
<script src="chosen.jquery.js" type="text/javascript"></script>
<script src="docsupport/prism.js" type="text/javascript" charset="utf-8"></script>
<script src="docsupport/init.js" type="text/javascript" charset="utf-8"></script>
<script>
$('#select-all').click(function(){
$('#multiple-label-example option').prop('selected', true); // Selects all options
$("#multiple-label-example").trigger("chosen:updated");
});
</script>
在這裡你可以看到按鈕的點擊事件,我已經添加了一行來改變所有的選項,然後在下面的一行來更新選擇。 如果你沒有給最後一行,即如果你沒有更新選擇它將無法正常工作。 它只會在更新選擇後才起作用。希望這可以解決您的問題。請讓我知道問題是否仍然存在。
感謝所有幫助我處理這個問題的人。 Darshan的反應是行動的,但是這不是我的情況,因為選擇應該從另外兩個表中編輯。 當我點擊編輯時,我抓住在第二個表中找到的編輯ID 。
表一:從中我抓住所有的數據保存在數據庫中
1-表Centro_medico
id name 1 hosptal a 2 hospital b 3 hospital c 4 hospital d 5 hospital e
在此表中選擇一個或多個後,我們將數據保存在第二個表中:
2-表2(醫院)
id id_lind id_centro_medico 1 2 1 2 2 2 3 2 3
id_link列是edit_form中傳遞給url的id
1-控制器
public function edit_form()
{
$edit_id= $this->uri->segment(3);
$data['ITEM_ALL']= $this->model->get_all_centro_medico();
$this->load->view('view_edit_form', $data);
}
2-查看編輯表單
<div class="form-group">
<label class="control-label col-sm-4">Centro médico</label>
<div class="col-sm-4">
<button type="button" class="chosen-toggle select col-xs-6">Select all</button>
<button type="button" class="chosen-toggle deselect col-xs-6">Deselect all</button>
<select class="form-control chosen-select" data-placeholder="Comienza a escribir un nombre para filtrar." multiple name="seguro_medico[]" >
<?php
// I select id_centro_medico equal to edit_id and equal to id of each centro_medico row ,
// and I compare them
foreach($ITEM_ALL as $row)
{
$id_centro_medico=$this->db->select('id_lind')->where('id_lind',$edit_id )
->where('id_centro_medico',$row->id)
->get('hospital')->row('id_lind');
if($edit_id==$id_centro_medico){
$selected="selected";
} else {
$selected="";
}
echo "<option value='$row->id_sm.' $selected>$row->title</option>";
}
?>
</select>
</div>
</div>
最後我不需要使用:
$(function(){
$(".chosen-select").trigger("chosen:updated");
})