求助一个ASP加AJAX的修改数据库的实例
一个文章管理系统的后台,在点击标题的时候,标题就无刷新变成了文本输入框,等编辑完文章标题后离开鼠标或者按回车就自动无刷新提交修改数据,这样的例子能实现吗?谁能帮我写个实例...
一个文章管理系统的后台,在点击标题的时候,标题就无刷新变成了文本输入框,等编辑完文章标题后离开鼠标或者按回车就自动无刷新提交修改数据,这样的例子能实现吗?谁能帮我写个实例,要MDB数据库的,其它的新增数据删除数据就不要了,就一个修改的就行,容易看的懂,研究几天了,谁能帮帮我?在线等,我只有20分只能给这么多不好意思,曾想过刷到100分开提问的,但马上被百度发现禁止掉3天ID.烦。
现在你的代码是可以实现无刷新修改标题了,但要怎么整合到后台里面去啊?比如<script language="javascript">....</script> 这段代码要放到哪里?就是放在“if not rs.eof then”的里面还是外面啊?那文章标题的编号应该也要插到代码的哪个位置吧?
但就是不知道<script language="javascript">....</script>这个怎么改,应该还要把文章的ID号也要插入到哪里去的吧?、
可不可以我传文件帮我改啊?我实在改不好。。。。 展开
现在你的代码是可以实现无刷新修改标题了,但要怎么整合到后台里面去啊?比如<script language="javascript">....</script> 这段代码要放到哪里?就是放在“if not rs.eof then”的里面还是外面啊?那文章标题的编号应该也要插到代码的哪个位置吧?
但就是不知道<script language="javascript">....</script>这个怎么改,应该还要把文章的ID号也要插入到哪里去的吧?、
可不可以我传文件帮我改啊?我实在改不好。。。。 展开
2个回答
展开全部
根据你说的情况来看,一楼的思路是不错的。使用数据回传可以实现在页面中无刷新进行更改。
你可以这样考虑,在JS中操纵DOM,很容易将一个INPUT对象的type类型从一个BUTTON变成一个TEXT的!变回来也是一样,这个是纯客户端JS代码可以实现的。只是一个问题是:如何将修改后的数据回传到服务器,而是不进行刷新。
这个要用到的一个JS对象是xmlHttpRequest的,这个对象在IE5.0+版本中集成了,但是由于不同版本的不同集成这个名称也是有变化的。同时由于浏览器的不同,对象名称也是不一样的。在Mozilla等非IE中可以使用这样的语句进行建造:new xmlHttpRequest();而在IE中早期版本的构造方式是:new ActiveXObject("Microsoft.XMLHTTP");而最新的版本的构造方式却是:new AxtiveXObjecct("msxml2.XMLHTTP")的方式。要想写出跨浏览器的版本的确是很复杂。
同时由于回传至服务器时还要有服务器文件和配合才行。一楼这些工作已经做好了,但是却没有对回传的数据进行处理。也就是说,一楼所写的bbb.asp的文件是要你自己写出来的!所以它只算给你了一个客户端的代码,且也是全兼容浏览器的。这个已经没有什么可以再说的了!
你现在可以将一楼的代码全拷由后,再写一个bbb.asp的文件,该文件像其他ASP文件一样,不过它的作用是取出客户回调的值后,进行数据库修改。
一楼唯一的缺点就是,如果bbb.asp文件没有对数据进行处理或处理出错时,不能有效地反应到客户端。也就是说你未必知道bbb.asp的工作状态。它若未完成修改呢?这样造成了我们常说的臆想数据。也就是真正的数据没有修改,而使用者以为修改过了!而事实不存在客户端这样的数据。所以我建议还是要加入这类代码的处理。虽然,它的出错率极低。
当然,如果你只是玩玩,无所谓,如果是一个网站项目,做不到这一点,怕是要被解雇的!
所以要么你要专业的人为你做,如果是学习,建议你仔细看一下一楼的代码,一般都是这样的写的!很不错!
你可以这样考虑,在JS中操纵DOM,很容易将一个INPUT对象的type类型从一个BUTTON变成一个TEXT的!变回来也是一样,这个是纯客户端JS代码可以实现的。只是一个问题是:如何将修改后的数据回传到服务器,而是不进行刷新。
这个要用到的一个JS对象是xmlHttpRequest的,这个对象在IE5.0+版本中集成了,但是由于不同版本的不同集成这个名称也是有变化的。同时由于浏览器的不同,对象名称也是不一样的。在Mozilla等非IE中可以使用这样的语句进行建造:new xmlHttpRequest();而在IE中早期版本的构造方式是:new ActiveXObject("Microsoft.XMLHTTP");而最新的版本的构造方式却是:new AxtiveXObjecct("msxml2.XMLHTTP")的方式。要想写出跨浏览器的版本的确是很复杂。
同时由于回传至服务器时还要有服务器文件和配合才行。一楼这些工作已经做好了,但是却没有对回传的数据进行处理。也就是说,一楼所写的bbb.asp的文件是要你自己写出来的!所以它只算给你了一个客户端的代码,且也是全兼容浏览器的。这个已经没有什么可以再说的了!
你现在可以将一楼的代码全拷由后,再写一个bbb.asp的文件,该文件像其他ASP文件一样,不过它的作用是取出客户回调的值后,进行数据库修改。
一楼唯一的缺点就是,如果bbb.asp文件没有对数据进行处理或处理出错时,不能有效地反应到客户端。也就是说你未必知道bbb.asp的工作状态。它若未完成修改呢?这样造成了我们常说的臆想数据。也就是真正的数据没有修改,而使用者以为修改过了!而事实不存在客户端这样的数据。所以我建议还是要加入这类代码的处理。虽然,它的出错率极低。
当然,如果你只是玩玩,无所谓,如果是一个网站项目,做不到这一点,怕是要被解雇的!
所以要么你要专业的人为你做,如果是学习,建议你仔细看一下一楼的代码,一般都是这样的写的!很不错!
展开全部
这个是修改好的代码,可以控制每条了,给高分啊!!!
这个很容易实现的。
<%
'这里是你循环数据库记录,假设为字段ID
for i=rs.recordcount
%>
<span id="title<%=rs("id")%>" ><span id="dd<%=rs("id")%>" onclick="changetitle(<%=rs("id")%>)">这里放数据库的标题</span></span>
<%
rs.movenext
next
%>
<script language="javascript">
function changetitle(titleid){
document.getElementById("title"+titleid).innerHTML="<input type='text' id='newtitle"+titleid+"' name='newtitle"+titleid+"' onblur='savetitile("+titleid+",this.value)'>";
}
function savetitile(id,v){
if (v.length<1) return false;
var xmlhttp=initxmlhttp();
if(!xmlhttp){
alert("初始化失败!");
return false;
}
var strURL="bbbb.asp"
xmlhttp.open("GET",strURL+"?v="+v,true);
xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4){
if(xmlhttp.status==200){
document.getElementById("title"+id).innerHTML="<span id='dd"+id+"' onclick='changetitle("+id+")'>"+xmlhttp.responseText+"</span>";
}
else{
alert("发生错误!"+xmlhttp.status);
return false;
}
}
}
xmlhttp.send(null);
}
function initxmlhttp(){
var xmlhttp = false;
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType('text/html');
}
}else if (window.ActiveXObject){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e)
{}
}
}
if (!xmlhttp){
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
return xmlhttp;
}
</script>
这个很容易实现的。
<%
'这里是你循环数据库记录,假设为字段ID
for i=rs.recordcount
%>
<span id="title<%=rs("id")%>" ><span id="dd<%=rs("id")%>" onclick="changetitle(<%=rs("id")%>)">这里放数据库的标题</span></span>
<%
rs.movenext
next
%>
<script language="javascript">
function changetitle(titleid){
document.getElementById("title"+titleid).innerHTML="<input type='text' id='newtitle"+titleid+"' name='newtitle"+titleid+"' onblur='savetitile("+titleid+",this.value)'>";
}
function savetitile(id,v){
if (v.length<1) return false;
var xmlhttp=initxmlhttp();
if(!xmlhttp){
alert("初始化失败!");
return false;
}
var strURL="bbbb.asp"
xmlhttp.open("GET",strURL+"?v="+v,true);
xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4){
if(xmlhttp.status==200){
document.getElementById("title"+id).innerHTML="<span id='dd"+id+"' onclick='changetitle("+id+")'>"+xmlhttp.responseText+"</span>";
}
else{
alert("发生错误!"+xmlhttp.status);
return false;
}
}
}
xmlhttp.send(null);
}
function initxmlhttp(){
var xmlhttp = false;
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType('text/html');
}
}else if (window.ActiveXObject){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e)
{}
}
}
if (!xmlhttp){
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
return xmlhttp;
}
</script>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询