php - codeigniter ajax




顯示Jquery從數據庫中選擇的數據更新 (3)

我認為你需要更新插件狀態。

$(function(){
    $(".chosen-select").trigger("chosen:updated");
})

我有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 : ",
})

我怎樣才能做到這一點?


@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");
})




codeigniter