使用ajax实现的功能,在一个框中输入关键字,自动输出提示信息获取id并填入到另一框中?
答案:1 悬赏:20
解决时间 2021-11-15 05:10
- 提问者网友:追忆成伤
- 2021-11-15 00:37
html代码如下:<br><br><head><br><script type="text/javascript"><br>var http_request;<br>function getKey(v){<br> if(v.value.length>2){<br> Ajax_send("process.phtml?cs_id=<?=$cs_id?>&key="+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("Microsoft.XMLHTTP");<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("null");<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></script><br><style><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></style><br></head><br><br><body><br><div id="out" class="test"></div><br><table><tr><br><td nowrap align="center"><input id="matID" name="matID" size="4" value="" readonly/><input name="code" value="" onKeyDown='getKey(this);' autocomplete='off'/></td><br></tr><br></td><br></table><br><body><br></html><br><br>process.phtml文件的代码如下:<br><?<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->getMat_name($key,$cs_id);<br> $return="";<br> if($i=0;$i<count($rt);$i++){<br> $row_mat=$rt[$i];<br> $return.="<a href=\"#\" onClick=\"end('".$row_mat['id']."');\">".$row_mat['code']." ".$row_mat['name']."</a></br>";<br>}<br> echo $return;<br><br>?><br>可是想要的效果出不来怎么改呀?
最佳答案
- 二级知识专家网友:浪者不回头
- 2021-11-15 00:58
没看你的代码,我一般都用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);
给你一个我的思路,我用的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);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯