cakephp将选择传递给JS Helper

时间:2013-03-07 07:03:09

标签: ajax cakephp helpers

我想获取所选的schoolFilter表单值并放在[SELECTED VALUE HERE]中。

$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。

1 个答案:

答案 0 :(得分: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代码都不会添加到您的页面中。