【问题标题】:Display Jquery chosen data from database to update [Codeigniter]显示从数据库中选择的 Jquery 数据以更新 [Codeigniter]
【发布时间】:2018-04-06 19:19:39
【问题描述】:

我在插入表单中选择了名为 centro medicos 的 jQuery,我可以选择所有数据,选择一些数据。如果我在这里单击全选是结果:

假设我只选择了 3 个项目然后我保存。现在我想编辑。加载编辑页面时,我希望加载我选择的 3 个项目:

如果我点击全选(Selectionar todo),则显示其余项目。

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

我怎样才能做到这一点?

【问题讨论】:

  • 您使用的是jquery chosen plug-in吗?我想你必须打电话给chosen:updated,比如$('.chosen-select').trigger('chosen:updated'); tl;dr; This answer.
  • 这就是我用的
  • 还有人可以帮助我吗?
  • 没问题我准备好了
  • 您能否edit 您的帖子包含来自 2-View 的 HTML 输出?我试图重新创建问题(不知道您的数据包含什么,但根据它的使用方式制作了样本),但它似乎将所选项目显示为选中...see demo here

标签: php jquery codeigniter


【解决方案1】:

您的 PHP sn-p 需要更改为类似:

<select class="chosen-select"  multiple  name="title[]">
<?php 
    $selected_titles = array_map(function ($item) { return $item->title; }, $TITLE_EDIT);
    foreach($TITLE_ALL as $title)
    {
            $selected = in_array($title->title, $selected_titles) ? 'selected' : '';
            echo '<option value="'.$title->title.'" class="'.$title->id.'" '.$selected.'>'
                 .$title->title
                 .'</option>';
    }
?>
 </select>

除此之外,如果没有屏幕截图或其他信息,当您说它不起作用时,您的意思就不清楚了。

【讨论】:

  • 我更新了我的问题,仍然没有任何回应。没有人需要我的赏金!
  • 史蒂夫的代码应该可以工作——唯一应该改变的是$selected = in_array($title, $selected_titles) ? 'selected' : '';$selected = in_array($title-&gt;title, $selected_titles) ? 'selected' : '';这一行
【解决方案2】:

我认为您需要更新插件状态。

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

【讨论】:

    【解决方案3】:

    @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>
    

    在这里你可以看到我添加了一行的按钮的点击事件 将所有选项更改为选定的,然后在其下方更改一行 更新选择。如果你不给最后一行,即,如果你不 更新选择它不会工作。只有更新后才能使用 所选择的。希望这能解决您的问题。如果 问题仍然存在。

    【讨论】:

      【解决方案4】:

      感谢每一位帮助我解决这个问题的人。 Darshan 的响应确实有效,但这与我的情况无关,因为选择应该来自其他的 2 个表来编辑它。 当我点击编辑时,我会抓取第二个表格中的 edit id
      表格一:我从中抓取所有数据以保存在数据库中

      1- 表 Centro_medico

      身份证名称 1 家医院 2 医院 b 3 医院 c 4 住院日 5医院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");
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-21
        • 1970-01-01
        • 2012-06-13
        • 1970-01-01
        相关资源
        最近更新 更多