2015-01-06 71 views
0

enter image description hereLaravel Ajax請求不工作控制器的

enter image description here

我使用laravel 4..2並有一個HTML的onchange像圖像功能。並將錯誤顯示爲第二張圖片。

此AJAX請求在create方法上不起作用,但它對laravel資源控制器的索引方法有效。

它的發生可能是因爲laravel控制器。任何人都可以通過解釋這個來幫助我。

// Routes.php 

Route::resource('index', 'IndexController'); 

    Route::get('ajax-subcat', function(){ 
     $cat_id = Input::get('cat_id'); 
     $subcategories = Subcategory::where('parent_ID', '=', $cat_id)->get(); 
     return Response::json($subcategories); 
    }); 

// AJAX 

    <script> 
      $('#category').on('change', function(e){ 
       console.log(e); 

       var cat_id = e.target.value; 

       // AJAX 
       $.get('ajax-subcat?cat_id=' + cat_id, function(data){ 
         $('#subcategory').empty(); 
         $.each(data, function(index, subcatObj){ 
         $('#subcategory').append('<option value="'+subcatObj.id+'">'+subcatObj.name+'</option>') 

          }); 

         // console.log(data); 


         }); 
       }); 

</script> 
+0

你調用'Ajax的SUBCAT CAT_ID =',但我沒有看到這種情況的路線?呼叫。你顯示的路線是首頁。 – lesssugar

+0

對不起,我的路線沒問題。這是我的錯誤。我編輯了我的問題。 –

+0

適合我。試着簡單地返回'$ cat_id'並將其記錄在控制檯中,而不是查詢結果。如果你看到正確的結果,那麼很可能是查詢結果或代碼本身出了問題。如果沒有 - 你確定Ajax甚至到達路線嗎? – lesssugar

回答

2

由於您使用Laravel,讓我們開始使用laravel發揮到極致:

在routes.php文件,請創建:

Route::get('ajax-subcat/{id}', '[email protected]_METHOD_NAME'); 

了 「(編號)」 告訴laravel存儲在變量中的「/」之後的任何細節都會傳遞給指定的控制器方法。沒有什麼比在網址中使用ajax-subcat = cars更醜陋了。也請用正確的名稱替換SOME_METHOD_NAME和SOME_CONTROLLER_NAME。

在你的控制器,請加:

public function THAT_METHOD_NAME_FROM_THE_ROUTE($id){ 
    $subcategories = Subcategory::where('parent_ID', '=', $id)->get(); 
    return Response::json($subcategories); 
} 

而在你的Ajax腳本

<script> 
     $('#category').on('change', function(e){ 
      console.log(e); 

      var cat_id = e.target.value; 

      // AJAX 
      $.get('ajax-subcat/' + cat_id, function(data){ 
        $('#subcategory').empty(); 
        $.each(data, function(index, subcatObj){ 
        $('#subcategory').append('<option value="'+subcatObj.id+'">'+subcatObj.name+'</option>') 

         }); 

        // console.log(data); 


        }); 
      }); 

</script> 
+0

這並不能解決問題,只是提供了另一種做同樣事情的解決方案。 – lesssugar

+0

我不想只是解決問題,我想讓人們在更可維護的mannor代碼。 –

+0

事情是,我不認爲你在這裏解決了任何問題,這不是回答的問題。這是一個「我有問題」的帖子,而不是「如何做得更好」 - 只是說。 – lesssugar