我使用CakePHP的2.6.1的CakePHP的js助手 - 更新3個下拉菜單動態
我有一個CakePHP的形式來處理這些3下拉menues訪問: 位置 - > facility->部門
我想他們是動態的人口,所以我跟着這個教程http://marnienickelson.com/2014/10/11/dynamic-dropdowns-with-cakephp-2-x/
它運作良好,除了一個小問題。如果我改變了「位置」,在「設備」下拉菜單中填寫正確,但「部門」菜單保持空白......
我AccessesController.php
public function add() {
if ($this->request->is('post')) {
$this->Access->create();
if ($this->Access->save($this->request->data)) {
$this->Session->setFlash(__('The access has been saved.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The access could not be saved. Please, try again.'));
}
}
$titles = $this->Access->Title->find('list');
$locations = $this->Access->Facility->Location->find('list');
$systems = $this->Access->System->find('list');
$this->set(compact('titles', 'locations', 'facilities', 'departments', 'systems'));
}
我get_by_location.ctp(和我有一個名爲get_by_facility.ctp)
<?php foreach ($facilities as $key => $value): ?>
<option value="<?php echo $key; ?>"><?php echo $value; ?></option>
<?php endforeach; ?>
我add.ctp結束相等文件和
<?php
$this->Js->get('#AccessLocationId')->event('change',
$this->Js->request(array(
'controller'=>'facilities',
'action'=>'getByLocation'
), array(
'update'=>'#AccessFacilityId',
'async' => true,
'method' => 'post',
'dataExpression'=>true,
'data'=> $this->Js->serializeForm(array(
'isForm' => true,
'inline' => true
))
))
);
$this->Js->get('#AccessFacilityId')->event('change',
$this->Js->request(array(
'controller'=>'departments',
'action'=>'getByFacility'
), array(
'update'=>'#AccessDepartmentId',
'async' => true,
'method' => 'post',
'dataExpression'=>true,
'data'=> $this->Js->serializeForm(array(
'isForm' => true,
'inline' => true
))
))
);
?>
我知道第二event'change」心不是承認和這就是爲什麼我的第三下拉留空白......是否有其他事件再‘變’?或者我可以把這兩個Ajax請求放在一個嗎?
你必須把兩者於一身,兩個請求於一體。 – 2015-02-16 11:14:23
好吧,我可以把請求放在一起,但然後Js-> get只是尋找LocationID? Cakephp Docs說:_將內部'selection'設置爲一個CSS選擇器。活動選擇用於後續操作,直到做出新選擇_我必須觀看LocationID和FacilityID – joshed1985 2015-02-16 16:22:04