2017-08-09 58 views
0

我在我的控制器建立這個laravel查詢使用數據在JavaScript

public function getSpiel(){ 

     $first = DB::table('Spielplan') 
      -> leftjoin('Verein', 'Spielplan.Heimmannschaft', '=', 'Verein.V_ID') 
      -> where('Spielplan_ID', '=', $spiel); 

     $final = DB::table('Spielplan') 
      -> leftjoin('Verein', 'Spielplan.Gastmannschaft', '=', 'Verein.V_ID') 
      -> where('Spielplan_ID', '=', $spiel) 
      -> union($first) 
      -> get(); 

     return Responds($final); 


    } 

此查詢的get()的輸出是這樣[{"Spielplan_ID":1,"V_ID":7,"Name":"SV Werder Bremen","Liga":1},{"Spielplan_ID":1,"V_ID":1,"Name":"FC Bayern M\u00fcnchen","Liga":1}] 而現在,我想在Java腳本使用它在我看來,部分

$.get('/spiel?spieleID=' + spieleID, function(data){ 
      $('#spiel').empty(); 
      $.each(data, function(index, valueAusData){ 
       $('#spiel').append('<option value="' + final.Heimmannschaft + '">'+final.Name+'</option>'); 
      }); 
     }); 

但是我沒有不正確的,我不知道在我的選擇部分使用這個。任何人都可以說如何在我的選項Java腳本部分使用集合中的值?

想一想。這將起作用

$spiel = Input::get('spieleID'); 
$teamOutput = Spielplan::where('Spielplan_ID', '=', $spiel)->get(); 
return Response($teamOutput); 

$('#spiel').append('<option value="' + valueAusData.Heimmannschaft + '">'+valueAusData.Heimmannschaft+'</option>'); 

這完全一樣。這一個工作,另一個不工作。

蹊蹺在這裏

<div class="col-xs-2"> 
       <label for="">Teamauswahl</label> 
       <select class="form-control input-sm" name="spiel" id="spiel"> 
       </select> 
      </div> 
+0

您使用的是什麼版本的Laravel? –

+0

index.Name會給你名字。您還沒有聲明變量final – richie

+0

它是laravel 5.3和index.Name不起作用 – HansMuff

回答

0

首先,你$.each裏面的邏輯是有點過

$.get('/spiel?spieleID=' + spieleID, function (data) { 

    if (data.hasOwnProperty('final')) { 

     $('#spiel').empty(); 

     $.each(data.final, function (index, valueAusData) { 
      $('#spiel').append('<option value="' + valueAusData.Heimmannschaft + '">' + valueAusData.Name + '</option>'); 
     }); 
    } 
}); 

其次,在你的控制器方法從改變return語句:

return Responds($final); 

return compact('final'); 

希望這有助於!

+0

沒有選擇框是空的。 – HansMuff

+0

我不知道該怎麼做。我編輯了我的第一個問題。也許更多的信息會有幫助。 – HansMuff

+0

@HansMuff你的控制檯是否有錯誤? –

0

您可以從value對象獲取Name

$.get('/spiel?spieleID=' + spieleID, function(data){ 
     $('#spiel').empty(); 
     $.each(data, function(index, value){ 
      $('#spiel').append('<option value="' + value.V_ID + '">'+value.Name+'</option>'); 
     }); 
}); 

看看jquery的文檔更例如http://api.jquery.com/jquery.each/

jQuery.each(陣列,回調)

array類型:Array要迭代的數組。

回調類型:函數(整數indexInArray,對象值)將在每個對象上執行的 函數。

演示

var json = [{"Spielplan_ID":1,"V_ID":7,"Name":"SV Werder Bremen","Liga":1},{"Spielplan_ID":1,"V_ID":1,"Name":"FC Bayern M\u00fcnchen","Liga":1}]; 
 
$.each(json, function(index, value){ 
 
    $('#spiel').append('<option value="' + value.V_ID + '">'+value.Name+'</option>'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="spiel" id="spiel"></select>

+0

謝謝,但此解決方案無效,爲什麼?我的代碼? – HansMuff

+0

@HansMuff我剛剛添加了演示腳本,請試試 –

+0

謝謝你,但一切都保持爲空 – HansMuff