Javascript 加载时将所选选项设置为PHP多选输入 我试图从数据库中获取数据,将值填充到multiselect字段中 我试图在这个multiselect字段中选择一些值
我怎样才能做到这一点Javascript 加载时将所选选项设置为PHP多选输入 我试图从数据库中获取数据,将值填充到multiselect字段中 我试图在这个multiselect字段中选择一些值,javascript,php,laravel,Javascript,Php,Laravel,我怎样才能做到这一点 提前谢谢。我认为,如果可能的话,你应该用javascript来代替。就延迟而言,这几乎不值得注意,而且不会浪费服务器端的周期。下面是我最近一个项目的一个例子。另外,如果您在select上内联声明onchange事件,它将在函数执行后立即为您调用它 <?php $arrayData = myModel::all(); foreach($arrayData as $arrayList){ $pureData = array_add($pureData, $array
提前谢谢。我认为,如果可能的话,你应该用javascript来代替。就延迟而言,这几乎不值得注意,而且不会浪费服务器端的周期。下面是我最近一个项目的一个例子。另外,如果您在select上内联声明onchange事件,它将在函数执行后立即为您调用它
<?php
$arrayData = myModel::all();
foreach($arrayData as $arrayList){
$pureData = array_add($pureData, $arrayList->elementValue, $arrayList->elementText);
}
echo Form::select('multiSelectName', $pureData, null, array());
?>
用法:
一种解决方案是获取所有可用选项和已选择的选项,然后确定它们是否匹配,并创建一个select元素,并将
选定的
参数设置为该元素
我不认为使用表单
助手就可以做到这一点
(我知道只需要一个值就可以完成,但我没有尝试使用多个值)
例子
获取所有可用选项(尝试获取一些唯一标识,如id)
$all_options=Model::list('id','name')代码>
我正在使用lists方法,该方法将返回一个数组,其中所有可用id作为值,名称作为数组的键
然后获取所有选定的值
$ready_selected_options=Model::with('related_Model')->列表('id','name')代码>
(如果您正在使用像这样有说服力的东西来获取相关ID,则可以使用)
那么在你看来,
$('select.select-onload').each(function(index){
if(typeof $(this).attr('data-selected') !== 'undefined'){
if($(this).attr('data-selected') == ''){
return false;
}
$(this).val( $(this).attr('data-selected') );
//we may have a callback. lets manually invoke it.
if(typeof $(this).attr('onchange') !== 'undefined'){
var callback = $(this).attr('onchange').replace('();','').trim();
window[callback].call(window);
}
}
});
@foreach($name=>$id的所有_选项)
@if(在数组中($id,$ready\u selected\u options))
{{$name}
@否则
{{$name}
@恩迪夫
@endforeach
我没有用完全相同的方法,但您通过解决方案启发了我。谢谢。没问题,如果你认为这个答案适合作为解决方案,请接受:)浪费周期。我的解决方案也会起同样的作用,并将繁重的工作留给客户。我将其与细枝模板引擎一起使用,尽管我对企业级前端进行了编程。所有服务器端的成本必须始终保持不变。是的,你是对的,但是如果用户禁用了javascript怎么办?这种情况不太常见,但可能会发生happen@HarryGeo谁在乎,现在是2015年。如果他们已经禁用了javascript,那么他们可能不会有什么好结果
<select multiple>
@foreach($all_options as $name => $id)
@if(in_array($id,$already_selected_options))
<option value="{{$id}}" selected>{{$name}}</option>
@else
<option value="{{$id}}">{{$name}}</option>
@endif
@endforeach
<select>