Cakephp使请求数据仅包含JSHelper中的选定字段值

时间:2014-07-23 07:16:18

标签: jquery ajax cakephp cakephp-2.3

我正在尝试使用JsHelper在Cakephp中实现Ajax功能。 通过以下代码,我可以通过Ajax实现所需的结果。

$data = $this->Js->serializeForm(array('isForm' => false, 'inline' => true));
$this->Js->get('#PostTitle')->event('change',
    $this->Js->request(
        array('controller' => 'posts', 'action' => 'get_slug'),
            array(
                //'update' => '#PostSlug',
                'success'=>'$("#PostSlug").val(data);',
                'async' => true,
                'dataExpression' => true,
                'evalScripts' => true,
                'method' => 'post',
                'data' => $data,
        )
    )
);
echo $this->Js->writeBuffer();

我的问题是如何只将选定的表单值作为$ data传递,而不是以序列化形式发送所有表单值。

例如,我想只发送单个字段“Title”的数据而不是整个表单。

提前致谢。

2 个答案:

答案 0 :(得分:2)

相反,我们可以使用以下代码发布数据。

'data' => '{state_id:$("#UserStateId").val()}',

答案 1 :(得分:0)

作为替代方案,我使用下面的代码将值作为参数传递而不是GET或POST方法。

$data = $this->Js->serializeForm(array('isForm' => false, 'inline' => true));
$this->Js->get('#PostTitle')->event('change',
$this->Js->request(
    array('controller' => 'posts', 'action' => 'get_slug', $this->Form->value('Post.id'), 'Some Value'),
        array(
            //'update' => '#PostSlug',
            'success'=>'$("#PostSlug").val(data);',
            'async' => true,
            'dataExpression' => true,
            'evalScripts' => true,
            'method' => 'post',
            'data' => $data,
    )
  )
);
echo $this->Js->writeBuffer();

我将 post_id 和自定义某些值作为参数传递。