大家要生成一個動態下拉的城市,每個國家的CakePHP的2.2應用程序的選擇。我對cakephp很陌生。另外,我幾乎找不到任何教程,因爲它們大多用於1.3或1.2版本。我在配置文件添加視圖中爲國家和城市提供了下拉菜單。下面是我的國家,雖然控制器代碼:動態下拉使用CakePHP和jQuery
public function citylist() {
$this->layout=false;
Configure::write('debug', 0);
if($this->request->is('ajax')){
$country=$this->Country->read(null, $this->request['url']['country_id']);
$code=$country['Country']['country_code'];
$cities=$this->Country->City->find('list',array('conditions' =>array('City.country_code' => $code),'recursive' => -1,'fields' => array('id', 'name')));
$this->set('cities',$cities);
}}
和我的jQuery代碼是這樣的:
$(document).ready(function(){
$('#ProfileCountryId').live('change', function() {
if($(this).val().length != 0) {
$.getJSON('/crush/countries/citylist',
{country_id: $(this).val()},
function(cities) {
if(cities !== null) {
populateCityList(cities);
}
});
}
});
});
function populateCityList(cities) {
var options = '';
$.each(cities, function(index, city) {
options += '<option value="' + index + '">' + city + '</option>';
});
$('#ProfileHomeLocation').html(options);
$('#city-list').show();
}
我試圖使變化,但讓人有些困惑在DIFF例子我看得非常差異的方式。 我不確定檢查請求類型是否爲ajax或者我應該通過request-> data或params [url]獲取參數值。
我跟着這兩個現有的答案,並進一步搞糊塗了。 cakephp pass dropdown value in ajax The connection was reset issue in CakePHP 2.2。
錯誤奇怪的是,第一次頁面加載它顯示在控制檯錯誤「無法加載資源:服務器500(內部服務器錯誤)的狀態迴應」。 但是,如果我加載重新加載,然後選擇下拉中的第一個值。它給錯誤
GET (內部服務器錯誤)jQuery.ajaxTransport.sendjquery-1.7.2.js:8240 jQuery.extend.ajaxjquery-1.7.2.js:7719 jQuery.each.jQuery 。(匿名 函數)jquery-1.7.2.js:7245 jQuery.extend.getJSONjquery-1.7.2.js:7262(匿名 函數)citylist.js:4 jQuery.event.dispatchjquery-1.7.2.js :3332 jQuery.event.add.elemData.handle.eventHandle
不知道該做什麼更進一步。
所以ü意味着我要補充這個 「 '<選項值=」' +指數+ ' 「>' +城市+ '';」在控制器內的東西,並設置一個最終的字符串比數組! 對於cakephp 2.x例如 – 2012-08-17 13:28:16
,如果你可以給出任何exapmle或給出任何鏈接,那麼這將非常棒。它並不一定是CakePHP特有的。一些代碼:'.ajax({url:'myurl',data:{...}})。done(function(data){$('#mySelectElementId')。html(data);});'和所述myurl應該從CakePHP的一個控制器的動作,其產生和返回使用'回聲$ myHTMLOutput HTML輸出(一個字符串實際上);'代替'返回$ myHTMLOutput;' – 2012-08-17 13:33:35
實際上的問題是與參數的值的傳遞。我嘗試使用2.2版本的更改方法,它的工作正常。雖然我接受你的答案,因爲它給了我想法,傳遞單個字符串,因此我能夠發現Jquery函數工作正常。 – 2012-08-18 08:50:54