2014-09-10 145 views
0

我想通過首先在第一個選擇菜單中選擇一個選項來動態設置選擇菜單中的選項。Laravel - 動態選擇菜單

示例:用戶在一個選擇菜單中選擇一家公司。在第二個選擇菜單中,設置屬於所選公司的位置。

這是我的看法

  <div class="form-group"> 
       <select class="form-control admin-select" name="admin-select"> 
        <option>- Select -</option> 
        <option value="1">Company 1</option> 
        <option value="2">Company 2</option> 
        <option value="3">Company 3</option> 
       </select> 
      </div> 
      <div class="form-group"> 
       <select id="location" class="form-control" name="location"> 
        <option>- Select -</option> 
       </select> 
      </div> 

的jQuery:

$('.admin-select').change(function() { 

    $.getJSON("https://stackoverflow.com/users/dropdown/"+$(this).val(), function(data) { 

     var location = $('#location'); 
     location.empty(); 

     $.each(data, function(index, element) { 
      location.append("<option value='"+ element.id +"'>" + element.name + "</option>"); 
     }); 

    }); 
}); 

UsersController:

public function dropdown() 
{ 
    $input = Input::get('option'); 
    $company = Company::find($input); 
    $locations = $company->locations(); 
    return Response::make($locations->get(['id','name'])); 
} 

我認爲這個問題是我需要設置爲我的下拉功能的路線,但我不確定那條路線應該是什麼樣子。

當我選擇一家公司但我沒有通過json獲取任何數據時,下拉式函數被調用。

+0

你應該發送GET或POST請求! – marko 2014-09-10 14:26:40

回答

0

如果這是id = $(this).val();

$.getJSON("https://stackoverflow.com/users/dropdown/", { id : $(this).val() }, function(data) {}); 

路線:

Route::get('users/dropdown/{id}', '[email protected]') 

控制器:

class UserController extends BaseController { 

    /** 
    * Show the profile for the given user. 
    */ 
    public function dropdown($id) 
    { 
     $company = Company::find($id); 
     $locations = $company->locations(); 
     return $locations->get(['id','name']); 
    } 
} 
+0

我得到一個錯誤返回json對象{type =「ReflectionException」,...} – snorth 2014-09-10 14:53:07

+0

這裏有什麼錯 - 返回Response :: make($ locations-> get(['id','name'])) ; – marko 2014-09-10 15:05:58

+0

首先在您的瀏覽器中檢查 - localhost/users/dropdown/{id} - 確定一個真實的值並檢查您得到的結果。 – marko 2014-09-10 15:06:57