在Ajax.autocompleter函数中填充的整个列表
我已经使用Scriptaculous js框架的Ajax.autocompleter函数实现了自动完成功能。代码正在运行,但是我填充了整个列表,而不是只填充与我指定的字母匹配的条目。 这是我的代码: 这是获取自动建议条目的js函数在Ajax.autocompleter函数中填充的整个列表,ajax,scriptaculous,autocomplete,Ajax,Scriptaculous,Autocomplete,我已经使用Scriptaculous js框架的Ajax.autocompleter函数实现了自动完成功能。代码正在运行,但是我填充了整个列表,而不是只填充与我指定的字母匹配的条目。 这是我的代码: 这是获取自动建议条目的js函数 new Ajax.Autocompleter("autocomplete", "autocomplete_choices", "http://localhost/FormBuilder/forms/autoComplet
new Ajax.Autocompleter("autocomplete", "autocomplete_choices",
"http://localhost/FormBuilder/forms/autoComplete",{});
这是自动完成框以及填充条目的条目
<input type="text" id="autocomplete" name="autocomplete_parameter"/>
<div id="autocomplete_choices" class="autocomplete"></div>
但是假设我键入字母“p”,我会得到整个用户列表,而不是显示以字母“p”开头的列表。为什么我会遇到这个问题?我哪里出错了?嗯,我找到了答案。。实际上是个错误。我应该将paramName选项添加到Ajax.autocompleter函数中,并且应该在controller函数中的$\u请求方法中获取值
new Ajax.Autocompleter("autocomplete", "autocomplete_choices",
"http://localhost/FormBuilder/forms/autoComplete",
{paramName:"autocomplete"});
function autoComplete()
{
$userName=$_REQUEST['autocomplete'];
$this->set('users',$this->User->find('all',array(
'fields'=>array('User.id','User.name'),
'conditions'=>array('User.name LIKE' => $userName.'%'))
)
);
$this->layout = "ajax";
}
现在我只得到以字母表开头的条目
new Ajax.Autocompleter("autocomplete", "autocomplete_choices",
"http://localhost/FormBuilder/forms/autoComplete",
{paramName:"autocomplete"});
function autoComplete()
{
$userName=$_REQUEST['autocomplete'];
$this->set('users',$this->User->find('all',array(
'fields'=>array('User.id','User.name'),
'conditions'=>array('User.name LIKE' => $userName.'%'))
)
);
$this->layout = "ajax";
}