2017-09-06 55 views
2

我是ajax的初學者。現在我正在使用Laravel 5.4,並且我想在我的視圖中填充我的控制器中查詢的城市,以便輸出。JSON對象填充在我的HTML選擇使用javascript

這裏是我的代碼:

function getCities(province_id) { 
    $('#city_id').empty(); 
    $.ajax({   
     url: "{{ url('city') }}/" +province_id,   
     type: "GET", 
     dataType: "JSON", 
      success: function(data) { 
       var opts = $.parseJSON(data); 
       // Use jQuery's each to iterate over the opts value 
       $.each(opts, function(i, d) {      
        $('#city_id').append('<option value="' + d.city_id + '">' + d.city_name + '</option>'); 
       }); 
      } 
    }); 
} 

在我的控制,我有這樣的:

public function getmycity($province_id) { 
     $cities = DB::table('cities') 
     ->select('cities.city_id','cities.city_name') 
     ->where(['cities.province_id' => $province_id]) 
     ->get(); 

     return $cities; 
    } 

我已經有了JSON對象的回報率在我的網絡,我見過的所有數據對象。

JSON  
0 Object 
city_id 28 
city_name Test City 

請幫我把它放在我的選擇。

我沒有錯誤,但它沒有填充我的選擇類型與我的查詢值。

這裏是我的看法:

<div class="form-group"> 
       <label class="control-label col-sm-4" for="email">City/Municipality :</label> 
       <div class="col-sm-8"> 
        <select class="form-control" id="city_id" name="city_id"> 
         <option>Select city/municipality</option>     
        </select> 
       </div> 
       </div> 
+0

你好,如果你的getmycity方法返回JSON正確,然後選擇下拉菜單應相應地填充。請看看它在這裏工作:https://jsfiddle.net/tjg8rmgu/2/ – Rakib

+0

或者你可以通過使用下面的線路返回響應() - > json($ cities)來檢查;在getmycity方法。 – Rakib

+0

@Rakib請幫我先生仍然答案不是我的問題的解決方案 –

回答

0

試着改變你的分貝結果在純陣列是這樣的:

$cities = json_decode(json_encode($cities),true); 

然後return它:

return $cities; 

而且, 當你已經寫了dataType:'JSON',那麼不需要解析你的迴應,你可以嘗試沒有var opts = $.parseJSON(data);這樣var opts = data;

希望這會幫助你...

+0

hey Jc John,我很高興我的回答對你有幫助。我可以得到一個投票嗎? 非常感謝... :-) –

+0

opps hello sir @Himanshu我認爲它已經解決了我的問題,但仍然沒有填充 –

+0

SyntaxError:JSON.parse:JSON數據的第1行第1列的意外字符 –