中易网

使用ajax实现的功能,在一个框中输入关键字,自动输出提示信息获取id并填入到另一框中?

答案:1  悬赏:20  
解决时间 2021-11-15 05:10
html代码如下:<br><br>&lt;head&gt;<br>&lt;script type=&quot;text/javascript&quot;&gt;<br>var http_request;<br>function getKey(v){<br>     if(v.value.length&gt;2){<br>          Ajax_send(&quot;process.phtml?cs_id=&lt;?=$cs_id?&gt;&amp;key=&quot;+v.value,'GET');<br>      }<br>function Ajax_send(url,method){<br>   if(window.XMLHttpRequest){<br>        http_request= new XMLHttpRequest();<br>  }else if(window.ActiveXObject){<br>        http_request= new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);<br>  }<br>        http_request.onreadystatechange=Ajax_out;<br>        http_request.open(method,url,true);<br>        http_request.send(null);<br>  }<br>function Ajax_out(){<br>     if(http_request.readyState==4){<br>     if(http_request.responseText!=''){<br>       out(http_request.responseText,'block');<br>  }  else{<br>       alert(&quot;null&quot;);<br>   }<br> }<br>}<br>   function out(inner,display){<br>       var div=document.getElementById('out');<br>       var e=document.getElementById('matID');<br>       var top=e.getBoundingClientRect().top;<br>       var left=e.getBoundingClientRect().left;<br>       changeStyle(div,top+20,left,452);<br>       div.style.display=display;<br>       div.innerHTML=inner;<br>}<br> function end(select){<br>       document.getElementById('matID').value=select;<br>       document.getElementById('out').style.display='none';<br>   }<br>function changeStyle(div,top,left,width){<br>       div.style.top=top;<br>       div.style.left=left;<br>       div.style.width=width;<br>   }<br>&lt;/script&gt;<br>&lt;style&gt;<br>    .test{<br>    display:none;<br>    z-index:100;<br>    width:452px;<br>    top:20px;<br>    left:0px;<br>    height:auto;<br>    background-color:lightgrey;<br>    border:1px solid;<br>    position:absolute;<br>    }<br>&lt;/style&gt;<br>&lt;/head&gt;<br><br>&lt;body&gt;<br>&lt;div id=&quot;out&quot; class=&quot;test&quot;&gt;&lt;/div&gt;<br>&lt;table&gt;&lt;tr&gt;<br>&lt;td nowrap align=&quot;center&quot;&gt;&lt;input id=&quot;matID&quot; name=&quot;matID&quot; size=&quot;4&quot; value=&quot;&quot; readonly/&gt;&lt;input  name=&quot;code&quot; value=&quot;&quot; onKeyDown='getKey(this);' autocomplete='off'/&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;/td&gt;<br>&lt;/table&gt;<br>&lt;body&gt;<br>&lt;/html&gt;<br><br>process.phtml文件的代码如下:<br>&lt;?<br>   require_once('include/matService.inc');<br>   $matservice= new matService();<br>   $key=$_GET['key'];<br>   $cs_id=$_GET['cs_id'];<br>   //echo $key;<br>   //echo $cs_id;<br>   $rt=$matservice-&gt;getMat_name($key,$cs_id);<br>   $return=&quot;&quot;;<br>   if($i=0;$i&lt;count($rt);$i++){<br>   $row_mat=$rt[$i];<br>   $return.=&quot;&lt;a href=\&quot;#\&quot; onClick=\&quot;end('&quot;.$row_mat['id'].&quot;');\&quot;&gt;&quot;.$row_mat['code'].&quot; &quot;.$row_mat['name'].&quot;&lt;/a&gt;&lt;/br&gt;&quot;;<br>}<br>  echo $return;<br><br>?&gt;<br>可是想要的效果出不来怎么改呀?
最佳答案
没看你的代码,我一般都用JQuery的ajax框架做ajax。
给你一个我的思路,我用的asp.net语言。

文件需求:一个显示调用页面,命名为a。aspx;一个ajax后台返回数据页,命名为ajax。aspx

页面布置:a.aspx 中写入操作内容,一个ajax调用方法,一个选定值方法,一个div接收返回HTML,名为为div_data
一,//ajax调用方法
function DoAjax(val){
$("#div_data").show();
var url = "Ajax.aspx?val="+val;
$.get(url, function(data) {
//data为ajax返回数据,字符串类型
$("#div_data").attr("innerHTML",data); })
}
//选定值方法,并复制给一个输入框(id为txt_data)
function selectData(val){
$("#txt_data").attr("value",val);
$("#div_data").hide();
}

//两个txt,一个div
<input type='text' onkeyup="DoAjax this.value)"/>
<div id='div_data'></div>
<input type='text' id='txt_data'/>
二,//ajax.aspx接收参数值,根据参数值获得数据并拼接为HTML返回
//没有HTML代码,后台输出HTML//后台代码如下
string param=request.QueryString["val"];
//此处为根据参数查询数据库,获得列表数据datatable或其他数据集合都可以
DataTable dt=GetDataTable(val);
//循环dataTable,编写格式输出HTML
string HTML="";
foreach(DataRow dr in dt.Rows){
HTML+="<a href='JavaScript:void(0)' onclick=\"SelectData('"+dr["Name"].ToString()+"')\">"+dr["Name"].ToString()+"</a>";
}
//将HTML打印到前台,用以返回给上一个页面

Response.Write(HTML);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大家觉得金陶名家陶瓷怎么样?
至上励合《还好有你在》歌词,要标明哪一句是
在一场篮球比赛中,小姚叔叔接连投中X个3分球
脱毛安不安全呢
微店怎么进去
北辰区城市管理综合执法局集贤里执法队地址有
北辰区城市管理综合执法局佳荣里街执法队地址
请问杭州这边的开着名跑车卖高仿鞋子,质量挺
如何DIY手工挂件?
什么是难治性心力衰竭?
一个8G内存卡多钱么,klnqston类型的。
引起无精症有什么原因?
天生有福气的脚相是什么意思?好不好呢?
我家孩子2005年10月初四这个日子和时辰怎样啊
怎么写过年日记
推荐资讯
赵成造型怎么去啊,有事要去办理
滨城区到 沂源县有多远啊
禹城市ETC服务点办公地址在什么地方,我要处
福气又安康里的,严大风养在珍珍家里的那只宠
永旺桌球城地址好找么,我有些事要过去
求:现代大学英语精读3含TextB的听力mp3。十
在厦门同安上小学一年级需要哪些证件
春去冬来是什么意思啊?
交捽的意思是什么?交捽的释义是什么啊?
良发针织布行怎么去啊,有知道地址的么
刘台庄三村委会办公地址在什么地方,我要处理
牢燭的意思是什么?牢燭的释义是什么啊?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?