文本框在输入文字就直接后台提交数据库的问题,不用点击提交键,需要实例,谢谢!

gzapu 2011-01-11 06:03:45
如何在文本框在输入数据后,在鼠标点击其他输入框时自动把这输入框里的内容自动写进数据库?需要实例。谢谢!!!!
解决立刻给分!!!
...全文
257 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zongwl 2011-01-12
  • 打赏
  • 举报
回复

<input id="g_name" maxlength="10"size="25" name="g_name" style="border:solid 1px #535353;float:left; margin-right:10px;" onChange="Validname();" onkeyup="Validname()" /><div id="S_name" style="height:14px;width:150px;border:solid;border-width:1px;border-color:#00CC99; background: #F0FBEC;padding-top:5px;padding-left:10px;display:none;"></div>
<script language="javascript">
function Validname()
{
xmlhtml=new XMLHttpRequest();
var uname=document.getElementById("g_name").value;
var Nurl="IsName.asp?action="+uname;
if (uname!="")
{
xmlhtml.onreadystatechange=function(){
if(xmlhtml.readyState==4)
{ document.getElementById("S_name").innerHTML=xmlhtml.responseText;
}
}
}
xmlhtml.open("GET",Nurl,true);
xmlhtml.send(null);
return true;
}
</script>


'这是IsName.asp
<!--#include file="conn.asp" -->
<%
Response.ContentType="text/html"
Response.Charset="gb2312"
g_name=request.QueryString("action")

set rs=conn.execute("select top 1 * from Luser where username='"&g_name&"'")
if not rs.eof then
response.Write "<font color=#FF0000>请点击下一步</font>"
else
response.Write "<font color=#FF0000>用户名不存在</font>"
end if
Set rs=Nothing

%>


例子有了,可以修改一下就能用
gzapu 2011-01-12
  • 打赏
  • 举报
回复
3楼的代码运行是提示找不到对象,怎么回事呢?奇怪
shenzhenNBA 2011-01-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gzapu 的回复:]
3楼的代码运行是提示找不到对象,怎么回事呢?奇怪
[/Quote]

LZ 上面我的CLIENT端 的 AJAX函数这里有点错,修改如下:

function ajaxPost(inputBoxID,refGoURL){
var oID=trim(inputBoxID);
if(oID=="") return;
var para=trim($(inputBoxID).value);
if(para=="") {alert('请输入数据...'); $(inputBoxID).focus(); return;}
var xmlHR;
var goURL=refGoURL+"?p="+para; //create the URL with the parameter
if(!xmlHR) xmlHR=createXMLHttp();
xmlHR.open('GET', goURL, true);
xmlHR.onreadystatechange = callBackFun;
//xmlHR.withCredentials = "true";
xmlHR.send(null);

function callBackFun(){
if(xmlHR.readyState == 4) {
if(xmlHR.status == 200) {
var r = xmlHR.responseText;
r=r.toLowerCase();
if(r=="ok")
alert("OK\n\nData save into DB ok.");
else
alert("False\n\nSomething wrong happend when data save into DB.");
}
}
}
}


每个输入框的内容提交的地方可能不同,输入的URL做成动态的,你看看还有什么问题...
shenzhenNBA 2011-01-11
  • 打赏
  • 举报
回复
SQL语句最好修改加条件。。。

xSQL="update yourTable set xxCol ='" & p & "' where 你的条件 " '// 这里根据你的具体情况设计SQL保存代码
shenzhenNBA 2011-01-11
  • 打赏
  • 举报
回复
LZ 参考这个高效的例子看看...

1,CLIENT端:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<style type="text/css">
*{font-family:verdana; font-size:12px;}
</style>
<!--
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" language="javascript"></script>
-->
<script language="javascript" type="text/javascript">
function $(id){
return "string" == typeof(id) ? document.getElementById(id) : id ;
}

function trim(str){
return str.replace(/^\s*|\s*$/g,"");
}

function createXMLHttp(){
var objXMLHttp;
if (window.XMLHttpRequest) {
objXMLHttp = new XMLHttpRequest();
if (objXMLHttp.overrideMimeType){
objXMLHttp.overrideMimeType("text/xml");
}
}else if(!objXMLHttp && window.ActiveXObject){
var activexName = ["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for (var i = 0; i < activexName.length; i++) {
try{
objXMLHttp = new ActiveXObject(activexName[i]);
}catch(e){
continue;
}
if(objXMLHttp) break;
}
}
//确认XMLHTtpRequest对象创建成功
if(objXMLHttp){
return objXMLHttp;
}else{
alert("Can not create XMLHttpRequest object, maybe update your browser to new version.\n\nXMLHttpRequest对象创建失败! 请升级你的浏览器");
return;
}
}

function ajaxPost(inputBoxID,refGoURL){
var oID=trim(inputBoxID);
if(oID=="") return;
var para=trim($(inputBoxID).value);
if(para=="") {alert('请输入数据...'); return;}
var xmlHR;
var goURL=refGoURL+"?p="+para; //create the URL with the parameter
if(!xmlHR) xmlHR=createXMLHttp();
xmlHR.open('GET', goURL, true);
xmlHR.onreadystatechange = callBackFun;
xmlHR.withCredentials = "true";
xmlHR.send(null);

function callBackFun(){
if(xmlHR.readyState == 4) {
if(xmlHR.status == 200) {
var r = xmlHR.responseText;
r=r.toLowerCase();
if(r=="ok")
alert("OK\n\nData save into DB ok.");
else
alert("False\n\nSomething wrong happend when data save into DB.");
}
}
}
}
}
</script>
<body>
<br>
<br>
<br>
<input name="inx" id="inx" value="" onBlur="javascript:ajaxPost('inx','xxxPage.asp');">
<br><br>
<input name="inx2" id="inx2" value="" onBlur="javascript:ajaxPost('inx2','xxxPage.asp');">
</body>
</html>


2,SERVER端:

<%
'DB connection fisrt....
dim p,reStr,xSQL
reStr="ok"
err.clear
on error resume next
p=trim(request.QueryString("p")) '//还可以其他处理
xSQL="update yourTable set xxCol ='" & p & "'" '// 这里根据你的具体情况设计SQL保存代码

'or
'xSQL="insert into yourTable(xxCol) valude ('" & p & "')" '//这里根据你的具体情况设计SQL保存代码

objDBCon.execute(xSQL)
if err.number=0 then
reStr="ok"
else
reStr="wrong"
end if

'DB close at the end ...

response.Write reStr
%>
yhtapmys 2011-01-11
  • 打赏
  • 举报
回复
要是哪天Tab键被卡住了 有的忙了。

建议先存储在客户端,提交的时候再一次性写入数据库。

灬上海爽爷 2011-01-11
  • 打赏
  • 举报
回复
那么就是在文本框失去焦点的时候执行函数,把文本框的内容用AJAX写进数据库。。


这样的话如果你后来又想修改了你怎么去解决这个问题?。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧