如何在PHP项目中利用jQuery实现一个自动补全功能

介绍

如何在PHP项目中利用jQuery实现一个自动补全功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

代码如下:


& lt; !DOCTYPE html公众“-//W3C XHTML 1.0//DTD//EN"过渡;“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"比;
& lt; html xmlns=癶ttp://www.w3.org/1999/xhtml"比;
& lt; head>
& lt;元http-equiv=癈ontent-Type"内容=皌ext/html;charset=utf-8"/比;
& lt;脚本类型=拔谋?javascript"脚本https://www.yisu.com/zixun/src=" http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js ">
& lt;链接的href=https://www.yisu.com/zixun/薄?静态/js/select2-3.3.2/select2.css”rel="样式表"/>
& lt;脚本src=https://www.yisu.com/zixun/薄?静态/js/select2-3.3.2/select2.js ">
& lt;/head>
& lt; body>
& lt;表单名称=癴rm"id=癴rm"自动完成=皁ff"action=啊胺椒?皃ost"比;输入name=
& lt;“c"类型=癶idden"值=https://www.yisu.com/zixun/"试"/>
& lt;输入name=癮"类型=癶idden"值=https://www.yisu.com/zixun/癲iy”/>
& lt; label>飞流产品版块(Ajax调用远程数据):& lt;/label>
& lt;输入类型=癶idden"类=癰igdrop"id=癱olum"name=癱olum",价值=https://www.yisu.com/zixun/"/>
& lt;输入类型=癶idden"id=癱olumname"值=https://www.yisu.com/zixun/<{$ frmname}>“name=" columname "/>
& lt; p>版块ID: & lt; {$ frmid}祝辞& lt;/p>

& lt;/form>
& lt; script>文档
$()时()函数{
$(& # 39; #科勒姆# 39;)。select2 ({
minimumInputLength: 0,
占位符:& # 39;选择版块& # 39;,
ajax: {
url:“http://pm.feiliu.com/?c=try&=ajax_diy", & lt;跨在//& lt;/SPAN> & lt;跨度比;提供jsonp请求的url地址& lt;/SPAN>
,,,,,,,,,,,,,,,,,,,,,,数据类型:& # 39;jsonp # 39;,
,,,,,,,,,,,,,,,,,,jsonp:“callback"//传递给请求处理程序或页面的,用以获得jsonp回调函数名(一般默认为:回调,故可省略)
,,,,,,,,,,,,,,,,,,//jsonpCallback:“testback",
,,,,,,,,,,,,,,,,,,//jsonpCallback是自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可写“?“,jQuery会自动处理数据
quietMillis: 100,
数据:函数(名称,页面){
返回{
类型:[“exercise"],
限制:1,
问:名称
};
},
结果:功能(数据,页面){
{结果:返回数据。物品}
}
},
formatResult:功能(运动){
返回“& lt; div类=& # 39;select2-user-result& # 39;在“+ exercise.name +“& lt;/div>“;
},
formatSelection:功能(运动){
返回exercise.name;
}
});

$(& # 39; #科勒姆# 39;).change(函数(){
frm.submit ();
});
var的名字=$ (“# columname") .val ();
如果(名字){
$ (“# s2id_colum"); (“span")。text(名称);
}
});
& lt;/script>
& lt;/body>
& lt;/html>


下面是控制器的例子:

代码如下:


类pmc_try
{
公共职能diy () {
if ($ _POST[& # 39;科勒姆# 39;])
{
$支撑材=$ _POST[& # 39;科勒姆# 39;];
$?mod_forum: get_forum_name_by_fid (fid)美元;//根据id取名称
pm_tpl::分配(& # 39;frmid& # 39;美元fid);
pm_tpl::分配(& # 39;frmname& # 39;帧美元);
pm_tpl:显示(“try_diy");其他
}
{
pm_tpl:显示(“try_diy");
}
}
公共职能ajax_diy () {
$支撑材=$ _GET[& # 39;提问# 39;];
$调=$ _GET [“callback"];//默认函数名为回调
论坛=mod_forum:美元:get_ajx_forum_by_tpid (fid);
=总数美元($论坛);
$=结果数组(
& # 39;总# 39;=祝辞总美元,
& # 39;项目# 39;=祝辞美元论坛
);
输出美元=json_encode(结果);
echo $调强生# 39;(& # 39;。输出强生# 39;美元)& # 39;;//构造jonsp退出
();
}
}
?比;


模型方法:

代码如下:


公共静态函数get_forum_name_by_fid (fid)
{
$ sql=把≡衩执觭q_forums fid=& # 39;美元支撑材# 39;ORDER BY threads_counter DESC";
$ data=https://www.yisu.com/zixun/pm_db11: result_first ($ sql);
返回元数据;
}
公共静态函数get_ajx_forum_by_tpid (tpid美元,美元fid)
{
//产品ID: tpid,版块ID: fid
$ data=https://www.yisu.com/zixun/array ();
if ($ tpid,,$ fid){//构造一个id字段,也可以通过对查询结果加工构造
$ sql=把≡裰С挪淖魑猧d、fid,名字从sq_forums tpid=& # 39;美元tpid& # 39;名字像n # 39; % $ fid % & # 39;ORDER BY threads_counter DESC";
$=pm_db11:查询:查询($ sql);
$ data=https://www.yisu.com/zixun/pm_db11: fetch_all($查询);null

如何在PHP项目中利用jQuery实现一个自动补全功能