2014-09-08 4 views
0

Я новичок в laravel и php, поэтому извиняюсь, если это глупо (я - разработчик C#, пытающийся сделать некоторые веб-разработки), я создаю форму, и мне бы хотелось, чтобы выпадающий список появляется, если некоторый выбор был сделан на другом выпадающий список в той же форме, я надеялся, что кто-то может сказать мне, как это обычно делается, вот мой код до сих пор ..Laravel отзывчивый выпадающий список

<h4>Select Object Type</h4> 
{{ Form::select('shapeType', $Shapes) }} 
@if($shapeType == "Triangle") 
{{ Form::select('TriangleType', $TriangleTypes) }} 
@endif 

так как вы можете первый выпадающий список содержит $ Shapes, который имеет список фигур, и если выбрана Square, я хотел бы показать другой раскрывающийся список, в котором вы можете выбрать, какой тип треугольника он есть. Поэтому из моего контроллера я заполняю $ Shapes и $ TriangleTypes, текущий код дает мне ошибку, поскольку $ shapeType не объявлен, и это моя неудачная попытка прочитать предыдущий выпадающий список. Таким образом, некоторая помощь будет высоко оценена.

Благодаря Ландо

+0

вам нужно будет использовать JQuery, чтобы сделать это увидеть это (https://gist.github.com/msurguy/5138788) – Saqueib

+0

спасибо то больш, кажется немного излишним, чтобы прочитать значение меню один падение, но если вот как вы это делаете, вот как я это сделаю! – Lando

ответ

0

Вы не можете сделать это с прямым PHP, поскольку PHP генерируется в HTML, когда он загружен. У него нет возможности поймать изменения в первоначальном падении.

Вместо этого используйте javascript (с jQuery или без него), чтобы поймать событие изменения, которое срабатывает при выборе опции выбора. Затем используйте ajax для отправки выбранных данных на сервер и получения правильных выпадающих данных в соответствии с отправленными данными.

Пример кода - обратите внимание, что это не проверено и может иметь некоторые ошибки в нем, но, надеюсь, этого будет достаточно, чтобы вы начали.

Route::get('/shapes', array(
    'uses' => '[email protected]' 
)); 

class ExampleController extends BaseController{ 
    public function myShapes{ 
    if(Request::ajax()){ 
     $type = Input::get('shapeType'); 

     switch($shapeType){ 
     case 'triangle': 
      //get triangle data 
      break; 
     case 'square': 
      //get square data 
      break; 
     default: 
      //invalid input sent 
      break; 
     } 
     return $data; 
    } 
    } 
} 

$('#shapeType').change(function(){ 
    shapeValue = //get value from the selected item 
    $.ajax({ 
     url: '/shapes', 
     data: shapeValue 
     success: function(result){ 
      //change/update drop down to result data 
     } 
    }); 
}); 
+0

благодарю вас, сэр – Lando

+0

Ваш прием. Рад помочь. Заметьте - мадам была бы более уместной. :) – Anoua

+1

Извиняюсь, мадам, я никогда не сталкивался с программистом сам, но мне сказали, что они существуют и что там все полностью жарко;) – Lando

Смежные вопросы