我在插入表单中选择了名为 centro medicos 的jQuery,我可以选择所有数据,选择一些数据。如果我点击这里选择全部是结果:
我们说我只选择3个项目然后保存。现在我想编辑。加载编辑页面时,我想要加载我选择的3个项目:
如果我点击全选(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 : ",
})
我怎样才能做到这一点?
答案 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>