Я искал предыдущие ответы на ту же проблему, но ни один из них не помог мне так создать новый вопросДинамического населения выберите в раскрывающемся списке
Я пытаюсь заполнить второй выпадающий список в зависимости от значения списка первых выпадающего
ниже мой код
контроллер
<?php
class ExprResultsController extends BaseController {
/*
|--------------------------------------------------------------------------
| Default Home Controller
|--------------------------------------------------------------------------
|
| You may wish to use controllers instead of, or in addition to, Closure
| based routes. That's great! Here is an example controller method to
| get you started. To route to this controller, just add the route:
|
| Route::get('/', '[email protected]');
|
*/
public function bartExperRsltDwnld()
{
return View::make('hello');
}
public function soExperRsltDwnldPg()
{
$tasks = Tasks::lists('taskname', 'id');
return View::make('dashboard.admin.exprRslts.exprRsltsSo')
->with('tasks', $tasks);
}
public function getExprIds($id) {
$exprs = Experiments::where('expertype', '=', $id)->lists('expername', 'id');
/*$options = array();
foreach ($exprs as $expr) {
$options += array($expr->id => $expr->expername);
}*/
//Response::eloquent($exprs->get(array('id','name')));
//return Response::json($options);
return $exprs;
}
}
Маршруты
Route::get('dropdowns/exprs/{id}', '[email protected]');
клинка страница:
@extends('dashboard.dashboard_admin')
@section('page-content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><i class="fa fa-archive fa-fw"></i> Download Experiment's Data</h1>
</div>
<div class="col-lg-12">
{{ Form::open(array('url' => 'foo/bar')) }}
<div class="form-group">
{{ Form::label('taskname', 'Tool/Task Name:') }}
{{ Form::select('expertype',array('default' => 'Please select one option') + $tasks,'default', array('id' => 'expertype')) }}
</div>
<div class="form-group">
{{ Form::label('expername', 'Experiment Name:') }}
<select class="form-control" id="exprid" name="exprid" ></select>
</div>
<div class="checkbox">
<label>
<input type="checkbox">Disabled Checkbox
</label>
</div>
<div class="form-group">
{{ Form::submit('Submit', array('class' => 'btn btn-success')) }}
<a href="{{URL::to('dashboard')}}" class="btn btn-danger">Cancel</a>
</div>
{{ Form::close() }}
</div>
<!-- /.col-lg-12 -->
</div>
<br>
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bell fa-fw"></i> Note
</div>
<!-- /.panel-heading -->
<div class="panel-body">
<p>Current version only supports capability to download experiment data via excel spread
sheet. To download first select task type and then corresponding experiment.
Future versions will support advanced reporting framework.</p>
</div>
<!-- /.panel-body -->
</div>
<!-- /.panel -->
<script type="text/javascript">
$(document).ready(function() {
$("#expertype").change(function() {
$.getJSON("/dropdowns/exprs/",{ id : $("#expertype").val()}, function(data) {
var $exprid = $("#exprid");
$exprid.empty();
$.each(data, function(id, expername) {
$exprid.append('<option value="' + id +'">' + expername + '</option>');
});
$("#exprid").trigger("change"); /* trigger next drop down list not in the example */
});
});
});
</script>
@stop
Пожалуйста, помогите мне найти то, что происходит не так. Когда я набираю маршрут в браузере, он показывает мне значения в БД, как это {"rbFkbjdmSt": "expr1"}
Я попытался установить предупреждение внутри $ ("# expertype"). Change (function() и он работает.Но когда я ставил предупреждение внутри $ .getJSON ("/ dropdowns/exprs /", {id: $ ("# expertype"). val()}, функция (данные) { ответа не было.
Спасибо заранее!
Я просто пробовал подойти, но не помог..console.log ничего не показывает. И dropdown также не заселен :(любая другая идея решить это. – Vinay
Привет, ребята, спасибо за помощь. Оба ответа правильны, однако я столкнулся с другой проблемой. Я новичок в php, laravel и JS..и сделал не знаю, что URL в $ .getJSON ("/ dropdowns/exprs /" + $ ("# expertype"). val(), function (data) {должен указывать на мой контроллер, он фактически разрешен http: // localhost/выпадающих меню/exprs/BART, а не на этот http: //localhost/rdm_toolkit/public/index.php/dropdowns/exprs/BART.Поэтому, чтобы исправить проблему, я изменил значение .getJSON на $ .getJSON ("{{url ('/')}}" + "/ dropdowns/exprs /" + $ ("# expertype"). Val(), function (data) {... Надеюсь, это поможет будущим новичкам! – Vinay