我正在尝试使用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”的数据而不是整个表单。
提前致谢。
答案 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 和自定义某些值作为参数传递。