我知道你們可能已經回答了大量問題,但我真的需要一些幫助。 我找不到適合我的任何答案。CakePHP - 更新下拉列表
我有2名下拉列表的形式(表格ID MapInitForm):
區:,已填充
地區:我區(zoneSelect ID)的列表:我的領土清單(編號:territorySelect)
我的地區表中有一個zone_id。
所以當我選擇一個區域時,我需要獲取所有關聯的區域。當我選擇一個領域時,我需要做一些PHP的東西;
編輯感謝馬克的回答。
$('#MapInitForm #zoneSelect').change(function(){
var zone_id = $(this).val();
var zone_id = $(this).val();
var targeturl = $(this).attr('rel') + '?id=' + zone_id;
$.ajax({
type: 'get',
url: targeturl,
beforeSend: function(xhr) {
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
},
success: function(response) {
if (response.content) {
$('#territorySelect').html(response.content);
}
else {
console.log(response.content);
}
},
error: function(e) {
alert("An error occurred: " + e.responseText.message);
console.log(e);
}
});
});
在我的控制器:
public function zone_territories_ajax() {
$this->request->onlyAllow('ajax');
$id = $this->request->query('id');
if (!$id) {
throw new NotFoundException();
}
$this->loadModel('Territory');
$data = $this->paginate('Territory', array('Territory.zone_id =' => $id));
// $data = $this->Territory->find('all', array('condition' => array('Territory.zone_id =' => $id)));
$this->set('zoneTerritories', $data);
}
筆者認爲:
$url = $this->Html->url(array('controller' => 'zones', 'action' => 'zone_territories_ajax'));
echo $this->Form->create('Map');
echo $this->Form->input('zone_id', array(
'options' => $zones,
'empty' => '--- Select one ---',
'id' => 'zoneSelect',
'rel' => $url
));
echo $this->Form->input('zone_territory_id', array(
'empty' => '--- Select one zone ---',
'id' => 'territorySelect',
));
echo $this->Form->end();
最後,在我的zone_territories_ajax.ctp:
if (!empty($zoneTerritories)) {
$k = 0;
foreach($zoneTerritories as $zoneTerritory):
echo '<option value="' . $k . '">' . $zoneTerritory['Territory']['name'] . '</option>';
$k++;
endforeach;
}
else {
echo '<option value="0">' . __('noOptionAvailable') . '</option>';
}
在我的控制檯,我得到undefined for console.log(response.content); 但我得到了所選區域的正確值(我再次看到了我的控制檯中的那些值),但第二個下拉列表中沒有任何反應。
我做錯了什麼?
這段代碼示例應該自行工作嗎? – Zhob
你看過這個例子和它的源代碼嗎?這應該回答你的問題。請注意所涉及的控制器的網址。 – mark
馬克,請看看編輯。 – Zhob