如何破解jQuery自动完成插件?

时间:2011-03-19 06:58:43

标签: jquery jquery-autocomplete

我正在使用jQuery的Autocomplete插件,并且动态生成建议列表。我想摆脱自动完成功能提供的过滤,即我想加载来自后端的所有数据。 我正在使用的代码

$(document).ready(function(){
     $("#search_box").autocomplete("myscript/index");
}

<input type='input' id='search_box' />

PHP后端代码(symfony 1.4) 行动:

$s = $request->getParameter("p");
$c = new Criteria();
$c->add(DataSkillPeer::SKILLNAME, $s);
$data_array = array();
$data_skill_array = DataSkillPeer::doSelect($c);
foreach($data_skill_array as $arrays)
{
   $data_array[] = $arrays; 
}
$this->display_data = json_decode($data_array, true);

观点:

<?php if(!empty($display_data)): ?>
  <?php foreach($display_data as $da): ?>
        <?php echo $da."\n"; ?>
  <?php endforeach; ?>
<?php endif; ?>

数据是从myscript.php文件发送的,我想加载从后端传入的所有数据,例如,如果我输入j,那么我的后端生成java,javascript,jquery,ejb。我想要显示所有这些数据,而不是像建议那样通过自动完成功能进行过滤。有没有办法我可以破解自动完成功能,而不会失去它提供的UI效果。

1 个答案:

答案 0 :(得分:0)

我在没有黑客攻击自动完成插件的情况下得到了解决方案,因为我看到当我在文本框中单击“a”时它查询后端php脚本并返回数组[“asp”,“asp.net”,“actionscript”]并且在单击“s”时它没有触发后端脚本,因为它从缓存中获取数据。因此将属性设置为{cacheLength: 0}并且它有效。 谢谢大家帮助我和你的时间。和特殊的坦克@JohnP。