2015-04-07 3 views
3

Я пытаюсь обновить раздел моей страницы, используя этот код. У меня есть элемент select #sModelo, который каждый раз, когда он изменяется, обновляет таблицу, которая у меня есть. Проблема заключается в том, что при изменении выбора функции нагрузки принимает http://localhost:8000/admin/auditorias/pesquisa/+idModelo+ "вместо http://localhost:8000/admin/auditorias/pesquisa/1 (1 значение из idModelo)jquery load in laravel

Маршрут:

Route::get('admin/auditorias/pesquisa/{idModelo}', array('uses' => '[email protected]', 'as'=>'pergunta.pergunta')); 

Лезвие Код:

<div class="form-group @if ($errors->has('modelo')) has-error @endif"> 
    <select id="sModelo" name="modelo" class="form-control" style= "width: 150px"> 
     <option value="" disabled selected> Modelo </option> 
     @foreach ($modelos as $modelo) 
      <option value="{{$modelo->id }}"> {{$modelo->nome }}</option> 
     @endforeach 
    </select> 
</div> 
... 
<table id="updateTabelaPerguntas" class="table table-bordered table-condensed alinhar"> 
    @include('pergunta.pergunta') 
</table> 

Код jquery:

$("#sModelo").on('change', function(e){ 
    var idModelo = e.target.value; 
    console.log(idModelo); //shows the value 1 
    $('#updateTabelaPerguntas').load('{{ URL::action("[email protected]",array("idModelo"=>'+idModelo+')) }}'); 
}); 

Контроллер:

public function getBlocosPergunta($idModelo) 
{ 
    return View::make('pergunta.pergunta', array('blocos'=>Pergunta::getBlocosPergunta($idModelo))); 
} 
+0

где вы Jquery код? в виде лезвия? –

+0

да его в лезвии страница – SlimBoy

ответ

1

Как я могу видеть, что Вы хотите, чтобы маршрут генерировать с помощью URL::action.

Это должно работать:

$('#updateTabelaPerguntas').load(
    '{{ URL::action("[email protected]", "") }}' + '/' + idModelo 
); 
+0

Спасибо за обходное решение! – SlimBoy

1

Эта линия Ваш вопрос:

$('#updateTabelaPerguntas') 
    .load('{{ URL::action("[email protected]",array("idModelo"=>'+idModelo+')) }}'); 

Вы в основном смешивания PHP и JavaScript заявления здесь. Когда эта страница доступна, все, что находится между маркерами {{ }}, оценивается на сервере до на все, что возвращается обратно клиенту. В этот момент сервер не знает, что выбрал пользователь, а '+idModelo+' не является допустимой частью любого выражения PHP.

Я считаю, если вы проверяете источник вашего документа (как он возвращается сервером), то код JQuery будет выглядеть следующим образом:

$('#updateTabelaPerguntas') 
    .load('http://localhost:8000/admin/auditorias/pesquisa/+idModelo+'); 

Какой именно поведение вы испытываете. Мое предложение было бы просто использовать фактический адрес, и обновить идентификатор в URL на основе от того, что пользователь выбрал в JavaScript:

$('#updateTabelaPerguntas') 
    .load('/admin/auditorias/pesquisa/' + idModelo); 
+0

Спасибо за пояснение! Я пытаюсь решить @limonte, и он работает! – SlimBoy