2013-03-07 4 views
0

Я хочу получить выбранное значение формы школьного фильтра и поместить его в [ИЗБРАННОЕ ЗНАЧЕНИЕ ЗДЕСЬ].cakephp передача выбора JS Helper

$data = $this->Js->get('#SchoolFilter')->serializeForm(array('isForm' => true, 'inline' => true)); 

$this->Js->get('#SchoolSchoolId')->event(
'change', $this->Js->request(
     array('action' => 'assign_school_ads/', [SELECTED VALUE HERE], array(
      'update' => '#results', 
      'data' => $data, 
      'async' => true, 
      'dataExpression' => true, 
      'method' => 'POST' 
     ) 
    ) 
); 

// School Filter 
$schoolFilter = $this->Form->create('School', array('id' => 'SchoolFilter'); 
$schoolFilter .= $this->Form->input('school_id', array('label'=>'Schools', 'empty'=>'- select -'); 
$schoolFilter .= $this->Form->end(); 

Я видел варианты по этому вопросу, но без четкого ответа, кроме как просто забыть использовать JS Helper. Возможно ли это в контексте JS Helper? И если нет, могу ли я получить значение с помощью обычного JQuery, а затем ввести его в JS Helper.

ответ

0

Используйте следующий код: -

$this->Js->get('#SchoolFilter'); 
$this->Js->event('change', $this->Js->request(array('controller'=>'put-ur-controller-ame-here','action' => 'assign_school_ads'),array('async' => true,'update' => '#results','method' => 'post','dataExpression'=>true,'data'=> $this->Js->serializeForm(array('isForm' => true,'inline' => true))))); 

функция serialize() отправляет данные формы на действия PHP таким образом, мы можем видеть, какой вариант был выбран и решить, что для обновления в вызове Ajax.

данные формы будут найдены в $this->data в действии (так же, как после отправки формы).

Не забудьте добавить $this->Js->writeBuffer(); в свой макет непосредственно перед тегом закрытия кузова. В противном случае весь код ajax не будет добавлен на вашу страницу.

+0

Shweta, у меня уже есть код, который вы предлагаете на месте (см. Мой код), и он отлично работает, чтобы отправить данные. Я пытаюсь получить выбранное значение select и отправить его как параметр вместе с действием: array ('action' => 'assign_school_ads /', [SELECTED VALUE ЗДЕСЬ] – drpudding

+0

Возможно, я не получаю ваш отзыв, чтобы отправить выбранное значение как параметр, поскольку выбранное значение доступно в вашей функции как $ this-> data ['your-controller-name'] ['field-id'], поскольку serializeForm будет отправлять данные в вашу функцию так же, как после отправки формы –

+0

Например, я пытаюсь переписать действие AJAX POST как: assign_school_ads/3, где 3 - значение меню выбора. Это не работает: array ('action' => 'assign_school_ads', $ this-> data [ 'School'] ['school_id']. Кажется, что $ data недоступен для Помощника в этом формате до тех пор, пока не произойдет AJAX. Я знаю, что могу получить $ data в контроллере, но было интересно, есть ли способ использовать действие для достижения того же. – drpudding

 Смежные вопросы

  • Нет связанных вопросов^_^