根据laravel中的另一个下拉选择值填充下拉列表 - 编辑表单

时间:2015-11-03 14:31:05

标签: php jquery ajax laravel dropdown

我找到了如何在另一个网站上完成此操作,并且我开始工作了。我的问题是我需要在我的编辑表单中使用它(最好使用与我的创建表单相同的表单,因为我的创建和编辑视图使用相同的表单)。当我进入我的编辑页面时,"部分"应该选择下拉值。但是" Subsection"不是,因为当然我没有点击它。可能它对我来说太容易了,但我对javascript不太满意。我基本上需要第二个下拉列表(第一个小节)来显示正确的选项,基于哪个"部分"在我的编辑视图中选择了(第一个下拉列表)。

部分模型:

new Date()

分段模型:

$("a").click(function(){
  var myhref = $(this).attr('href');
  $('#content').load(myhref);
  return false;
});

<a href="page2.html">Load page2.html</a>
<div id="content">Hello world!</div>

查看:

public function subsections()
{
    return $this->hasMany('App\Subsection');
}

脚本:

public function section()
{
    return $this->belongsTo('App\Section');
}

路线:

{!! Form::select('section_id', [null=>'-- Select Section --'] + $sections, null, array('id' => 'section')) !!}

<select id="subsection" name="subsection_id" class="select">
    <option>-- First Select Section --</option>
</select>

From my controller: $sections = Section::lists('section', 'id');

3 个答案:

答案 0 :(得分:1)

如果您只想在jquery中选择第一个选项,可以添加:

$('#subsection option:eq(1)').prop('selected', true);

否则,如果您想选择特定值,可以通过

执行此操作
$('#subsection option[value="value_to_be_selected"]').prop('selected', true);

将所有值附加到子节

后使用此选项

答案 1 :(得分:1)

在我的控制器中,我添加了:

    $subsections = Subsection::where('section_id', '=', $transaction->section_id)->orderBy('subsection', 'asc')->lists('subsection', 'id');

在我看来,我这样做了:

    @if(isset($transaction))
    {!! Form::select('subsection_id', [null=>'-- Select Subsection --'] + $subsections, null, array('class' => 'select', 'id' => 'subsection')) !!}
    @else
        <select id="subsection" name="subsection_id" class="select">
            <option>-- First Select Section --</option>
        </select>
    @endif

问题解决了:))

答案 2 :(得分:1)

因此,我们要做的是,最初我们将把值作为
"<option value="">Select Something</option>"发送给从属下拉列表 并在返回错误时创建一个完整的下拉列表,并选择以下值并返回,这将减少大量的JavaScript调用。
控制器:

if($error){
//create get array of second drop-down, suppose $second_drop
// create complete second drop-down like
$selectbox="";
foreach($second_drop as $option){
            $selectbox.="<option value='". $option->id."'";
            if($request->option2==$ $option->id){
                $selectbox.=" selected ";
            }

            $selectbox.=">".$option->value."</option>";
        }
}
return view('routename', ['selectbox2' =>   $selectbox]);

查看:

<select id="subsection" name="subsection_id" class="select">
    {!! $selectbox !!}
</select>