好的,我正在尝试使用蛋糕的Js Helper实现一种livesearch。用户将在输入文本字段中选择要搜索的条件,使用下拉列表,然后搜索tyoe。到目前为止,这就是我所拥有的。
echo $this->Form->create(false,array('type'=>'post','default'=>false));
echo $this->Form->input('criteria',array(
'label'=>'Search Criteria',
'options' => array(
'id'=> 'By ID',
'name' => 'By Name',
'blood' => 'By Blood Type',
'type' => 'By Donor Type',
'age' => 'By Age',
'gender' => 'By Gender'
)
));
?>
这是输入:
<?php echo $this->Form->input('query', array('type' => 'text', 'id' => 'query', 'name' => 'query', 'label' => false, 'placeholder' => 'Search')); ?>
<div id="loading" style="display: none; ">
<?php echo $this->Html->image('ajax_clock.gif');?>
</div>
这是我使用助手生成的Js代码!
<script type="text/javascript">
<?php
echo $this->Js->get('#query')->event('keyup',$this->Js->request(
array('controller' => 'donors', 'action' => 'search'),
array('update'=>'#results','async' => true,'dataExpression' => true,'method' => 'post','data'=>'$(\'#query,#criteria\').serializeArray()')
),false);
?>
</script>
上面的Js应该在keyup事件中获取标准下拉值以及输入字段内的值。也就是说,我认为对数据进行编码更好,并在doc中找到了serializeArray方法,这应该就是这样(我想......)
现在,我的问题是我不知道如何从接收请求的操作中检索该序列化数据。到目前为止我有这个
function search() {
if($this->request->is('post')){
$data = $this->request->input('json_decode');
}
}
基本上,我想知道如何从搜索操作中访问数据,以及我试图回显$ data变量,并且死($ data),但我不知道调试信息在哪里显示。任何有关我的问题的帮助将非常感谢!谢谢!