[英]Retrieve data from model via controller using ajax in cakephp 3
我正在使用cakephp 3開發一個網站。 我對此很陌生。 我正在嘗試從ItinerariesController中的函數getSelectedItineraryData()檢索數據。 這是我的控制器代碼:
public function getSelectedItineraryData()
{
$selected_itinerary = @$this->request->data('id');
$locationdata = $this->Itineraries->find('locationdetails', [
'selected_itinerary' => $selected_itinerary
]);
return json_encode($locationdata);
}
這使用位於模型文件ItinerariesTable中的自定義查找器方法。
public function findLocationdetails(Query $query, array $options)
{
return $this->find()
->distinct(['Intineraries.id'])
->matching('Itineraries', function ($q) use ($options) {
return $q->where(['Itineraries.name IN' => $options['selected_itinerary']]);
});
}
這是對控制器進行調用的ajax請求:
function getwypts(callback){
$.ajax({
url: "/Itineraries/getSelectedItineraryData/" + selected_i,
type: "POST",
data: {
id: selected_i
},
//async: false,
success: function(result, status) {
var dayint = 1;
alert(result);
itins = JSON.parse(result);
var day_arr = JSON.parse(itins.day_array);
var json_day_list = JSON.parse(itins.json_day_data);
$('#temp_dir_array').val(JSON.stringify(day_arr));
$('#sel_id_name').text(itins.name);
start_n = itins.start_name;
end_n = itins.end_name;
var tempp = JSON.parse(itins.day_array);
waypt_obj.start = itins.start;
waypt_obj.end = itins.end;
waypt_obj.waypt = itins.arr_intin;
for (dayint = 0; dayint < json_day_list.length; dayint++) {
temp11 = tempp[dayint];
$("#itin_list").append('<div id="itinerary_item_' + (dayint + 1) + '" value="' + dayint + '"><a href="#" style= "border: 2px solid red;list-style-position: inside; margin: 5px" class="list-group-item testing"><input type="hidden" id="viewport_wp_item" value="' + tempp[dayint][0] + '" ></input><div class="alert alert-success"><b>Day ' + (dayint + 1) + ' of Trip (Overnight stay at ' + json_day_list[dayint].overnight + ')</b></div><div id="" class="alert alert-info"><b>Places Visited: ' + json_day_list[dayint].places + '</b><br>' + json_day_list[dayint].desc + '</div></a></div>');
}
if(callback) {
callback();
}
}
});
}
我的問題是此請求返回空結果。 看來這是因為自定義查找器方法未返回正確的響應。 我的控制器出了什么問題? 還是錯誤來自其他地方? 在此先感謝您,已經嘗試了數小時。
只需將其放置到您的控制器即可。 希望您的問題得到解決!
public function getSelectedItineraryData($ID)
{
$selected_itinerary = $ID;
$locationdata = $this->Itineraries->find('locationdetails', [
'selected_itinerary' => $selected_itinerary
]);
return json_encode($locationdata);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.