echo $this->Form->input('country_id',array( 'id' => 'country_id', 'empty' =>'')); echo $this->Form->input('city_id',array( 'id' => 'city_id', 'empty' =>''));
<?php //AJAX for Dynamic Drop down $this->Js->get('#country_id')->event('change', $this->Js->request(array( 'controller'=>'countries', 'action' =>'get_by_country', ), array( 'update' =>'#city_id', 'async' => true, 'method' => 'Post', 'dataExpression'=>true, 'data'=> $this->Js->serializeForm(array( 'isForm' => true, 'inline' => true )) )) ); // END AJAX ?>
public function get_by_country($id=null) { $country_id = $this->request->data['Country']['country_id']; $this->loadModel("City"); $subcategories = $this->City->find('list', array( 'conditions' => array('City.country_id' => $country_id), 'fields' => 'description', 'recursive' => -1 )); $this->set('cities',$subcategories); $this->layout = 'ajax'; }
<option><?php ?></option> <?php foreach ($cities as $key => $value): ?> <option value="<?php echo $key; ?>"><?php echo $value; ?></option> <?php endforeach; ?>
Labels: CakePHP 2.x, Scripts, Tutorial