2014-02-07 6 views
1

У меня есть две кнопки выбора и вы хотите отфильтровать записи, когда пользователь выбирает любую опцию Мне нужно запустить событие и передать значения кнопок в действие контроллера. мой код, как подcakephp pass select value ajax

вид

<?php echo $this->Form->create('Employee'); ?> 
    <fieldset> 
     <div class="pure-control-group"> 
     <?php echo $this->Form->input('designation', array("label" => "Designation",'type' => 'select', 'id'=>'DesignationType','options' => $settings,'empty' => 'select'));?> 

     <?php echo $this->Form->input('district', array("label" => "District",'type' => 'select', 'id'=>'districtType','options' => $district,'empty' => 'select'));?> 
     </div> 
    </fieldset> 
<?php echo $this->Form->end(); 

    $this->Js->get('#DesignationType')->event('change', 
    $this->Js->request(array(
     'controller'=>'employees', 
     'action'=>'getByCategory' 
     ), array(
     'update'=>'#success', 
     'async' => true, 
     'method' => 'post', 
     'dataExpression'=>true, 
     'data'=> $this->Js->serializeForm(array(
     'isForm' => true, 
     'inline' => true 
      )) 
     )) 
    ); 
    ?> 
<div id="success"></div> 

контроллер

public function getByCategory(){ 
     $design_id =$this->request->data['Employee']['designation']; 
     $district_id =$this->request->data['Employee']['district'];   
     $this->layout = 'ajax'; 
} 

, когда я нажимаю обозначение, то им удалось получить значение обозначения, но не в состоянии получить значение района .И следующие ошибка

Неопределенный индекс: район [APP \ Controller \ EmployeesController.php, строка 18]

так, как я могу получить значение района;

+0

Попробуйте добавить 'Эхо $ this-> Js-> WriteBuffer()' после '$ this-> Js-> запрос (..' вызов – Rikesh

+0

Я бы не. 'Использовать устаревший помощник JS. См. [ajax-and-cakephp] (http://www.dereuromark.de/2014/01/09/ajax-and-cakephp/) и связанный «примерный пример выпадающего списка», который именно то, что вы здесь делаете - просто используйте jQuery и CakePHP. – mark

ответ

0

Попробуйте послать form id в переменной данных. что

Попробуйте это:

$data = $this->Js->get('#YourFormId')->serializeForm(array('isForm' => true, 'inline' => true));  
$this->Js->get('#DesignationType')->event('change', 
$this->Js->request(array(
    'controller'=>'employees', 
    'action'=>'getByCategory' 
    ), array(
    'update'=>'#success', 
    'async' => true, 
    'method' => 'post', 
    'dataExpression'=>true, 
    'data'=> $data 
    )) 

);