显示Jquery从数据库中选择的数据以更新[Codeigniter]

时间:2017-10-25 15:50:01

标签: php jquery codeigniter

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

enter image description here

我们说我只选择3个项目然后保存。现在我想编辑。加载编辑页面时,我想要加载我选择的3个项目:

enter image description here

如果我点击全选(Selectionar待办事项),则会显示其余项目。

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

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:4)

@Diasline 这段代码工作正常,我已经在我的系统中检查过并重现了你得到的错误。 这是使用所选内容创建的示例代码。通过单击按钮,我在此代码中给出了全选选项。这是代码通过它。

{
    "_id" : ObjectId("5981aae07f6e1da1030041a7"),
    "usrCreatedAt" : "2017-08-02 12:35:12",
    "usrMail" : "lkjlh@cncnn.com",
    "usrFirstname" : "ezaeddd",
    "usrLastname" : "aze",
    "usrDocStatus" : "creating"
},
{
    "_id" : ObjectId("58d3ec3c7f6e1d93060041a8"),
    "usrMail" : "aaaa.bbbb@gmail.com",
    "usrFirstname" : "AAAAA",
    "usrLastname" : "BBBBB",
    "usrDocStatus" : "creating"
},
{
    "_id" : ObjectId("56eae6b87f6e1d25130041a8"),
    "usrMail" : "barbara_bhdgxat_bushaksky@tfbnw.net",
    "usrFirstname" : "Barbara",
    "usrLastname" : "Bushaksky",
    "usrDocStatus" : "creating"
}
  

在这里,您可以看到按钮的点击事件,我已经添加了一行   将所有选项更改为选中,然后将该行下面的行更改为   更新所选的。如果你没有给出最后一行,即如果你没有   更新选择它将无法正常工作。它只会在更新后起作用   所选择的。希望这解决了你的问题。请让我知道   问题仍然存在。

答案 1 :(得分:1)

您的PHP代码段需要更改为:

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

感谢每一位帮助我解决这个问题的人。 Darshan的回应在契约中起作用,但它不是关于我的情况,因为select应该来自其他2个表来编辑它。 当我点击编辑时,我会抓住第二个表格中的编辑ID 表一:从中我抓取所有数据保存在数据库中

1- Table 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-控制器

library(ggplot2)

d <- data.frame(x=rep(1:10, 8), y = rnorm(80), 
                f=gl(8,10, ordered = TRUE))
d$f1 <- factor(d$f <= 4, labels=c(1,3))
d$f2 <- as.numeric(d$f) %% 4

d2 <- data.frame(x=1:10, y=0, f1 = 2)

ggplot(d, aes(x,y)) + 
  geom_point(aes(colour=f)) + 
  geom_point(data=d2, colour="black") + 
  facet_grid(f1~f2)

2-视图编辑表单

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

最后我不需要使用:

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