如何用JAVASCRIPT传递表单域的变量到另外一个表单域中并显示出对应的字段值?(十万火急) 写一个隐藏的的iframe,表单域选择时提交到iframe,里面的asp取数据库的description,写个<script>parent.description.value="<%=rs("description")%>"</script>.............. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我给你写一个例子吧http://www.home1000.net/test/runmin/test.htm HTML部分代码(test.htm)<script id=getBeanStruct></script><script>function load(a){ var g = new Array(); var serverScriptType = ".asp?"; g = location.href.split("?"); y = location.pathname.split("."); getBeanStruct.src = y[0]+serverScriptType+"news_id="+a;}</script><BODY><select onchange="load(this.value)"><option value="通知">通知</option><option value="房子">房子</option><option value="材料">材料</option><option value="有害">有害</option></select><textarea id=t></textarea></BODY>查询部分代码<% '这里省略了查询程序%> alert("这里是从数据库里查出来的:<%=news_title%>"); t.value = "<%=news_title%>";注意,查询程序其实就是用的服务器端写出来的JS代码,load函数里面前四行是用来解析url的,不必理会。 忘记了,查询代码应该名为test.asp,否则由于load里面写的自动解析页面名(test.htm点前面的test位置),会找不到,可以改成手写,那样就随便了。原理,通过HTML事件触发修改<script>标签的src属性(***.asp?***=***),并通过url提交查询内容过去,在src属性指定的SERVER PAGE里用脚本输出js语句(包含查询结果),通过这个js语句控制你要修改的目标的值。跟用隐藏IFRAME效果一样,但是要更隐蔽一些,并且刷新的时候浏览器状态条反应没有frame刷新那么强烈。另外还有方法,(RDS),等等,我就知道这两个,XML(MS的XML相关组件吧)肯定也能做。 那个load函数我不太懂!能给我注释一下吗? description和model_name 都在一个表里吗?如果是就更简单把他们一起读出来,下拉框为 model_name里的option的value值就是对应的description,option的text值是model_name 在select里加上onchange="document.forms[0].description.value=(this.options[this.selectedIndex].value;" function load(a){ getBeanStruct.src = "test.asp?news_id="+a;}其实你只要写一句就可以了,这样你能明白了吧?我写那一段只不过是为了能不写死src,并且自动找到当前htm页面的同名asp(php)文件,就是说,如果这么用的话,hello.htm默认的服务器查询程序就是hello.asp,无须手工指定。 并且这种写法有一个特点,第一次查询可能需要到运行服务器脚本,当你第二次查询的时候,实际的查询不是从服务器上读取,是从历史页面里读取的,这样有了一个缓冲,可以减轻服务器压力,但是这又造成,数据的不一致,但是这种不一致是可以控制的,解决方法,new Date(),如果想从历史页面再次读取,不加时间,如果想读取数据的话,在提交的url里加上这个date就不会读取历史(好象这个类似时间戳的功能)。 zhp您好!您的回答让我觉得有些象绕口令,需要我分析一下,呵呵,开个玩笑:P谢谢你:) zhp:您好!您教我的方法,我有些不太明白!可以再说的“通俗”些吗?小妹我才刚刚起步,已经快抓破头皮了:P 呵呵,又学了一种方法。我以前知道的3种方法是:xmlhttpxmldom隐藏iframe前两种仅限于ie 如果ASP的话,再教你一种RDS,这种方法,我知道,但是没有用成过。 我来试试替他解释一下:<SCRIPT LANGUAGE="JavaScript"><!--function load(a){ var g = new Array(); //定义数组,就不说了吧 var serverScriptType = ".asp?"; //准备了一个字符串,“.asp”是个后缀,不稀奇,不过他在自己的程序里面其实写的是".php",不要给他晃点了 //“?”就有一点意思了,它告诉服务器后面有参数。用“?”传参数的格式是:?参数名=参数值&参数名=参数值..... //“&”是各组参数之间的分隔符,不过在这个程序中没有用到。 g = location.href.split("?"); //好像没有用到 y = location.pathname.split("."); //把当前地址对象(http://www.home1000.net/test/runmin/test.htm)的路径名(/test/runmin/test.htm)以小数点为分隔符分解成字符串数组,这个数组的第一个元素为"/test/runmin/test",第二个元素为“.htm” getBeanStruct.src = y[0]+serverScriptType+"news_id="+a; /* 获得一个新的字符串:上一步的第一个元素"/test/runmin/test" 加上第二步得到的serverScriptType(.asp?) 加上"news_id="再加上函数接收到的参数a(值为“通知”或“房子”之类的) 得到这样一个字符串:“/test/runmin/test.asp?news_id=通知” 不过在他自己的程序里面当然是“/test/runmin/test.php?news_id=通知”啦 然后他的服务器端有个test.php程序,会接收这个news_id参数的值,然后查询数据库,最后根据查询结果返回一段javascript代码 这是从它的服务器上返回回来的代码: alert("这里是从数据库里查出来的:关于加强房地产开发项目管理的通知"); t.value = "关于加强房地产开发项目管理的通知" 最后,由于来自同一个地址的页面和脚本会被本地缓存,下次就不从服务器再下载了, 所以他提到了new Date(),意思是把时间作为一个参数加进参数表里面去, 这样浏览器就会以为你在要求一个新的脚本了,象这样: getBeanStruct.src = y[0]+serverScriptType+"news_id="+a + “& time="+new Date(); */}//--></SCRIPT>唉,罗里罗嗦,越说越复杂,有人要打我了 大家帮我看看我这个js表单验证怎么错了呢?点击没有反应,谢谢了 ajax阻止表单跳转 如何用闭包处理这个问题 关于代码转换,急急急! PHP内页获取值 啊!完全要疯了,关于js switch语句。! 为已经序列化的表单批量添加input 直接把text的文字加到dropdownlist中(在线急) 怎样用JavaScript屏掉浏览器的菜单栏和地址栏、工具栏和状态栏 一个list中有普通类型数据,内部还有一个list,如何遍历? 如何将该变过的URL在传回给href? 还是树!!! 谢谢 !!
<script>
function load(a)
{
var g = new Array();
var serverScriptType = ".asp?";
g = location.href.split("?");
y = location.pathname.split(".");
getBeanStruct.src = y[0]+serverScriptType+"news_id="+a;
}
</script>
<BODY>
<select onchange="load(this.value)">
<option value="通知">通知</option>
<option value="房子">房子</option>
<option value="材料">材料</option>
<option value="有害">有害</option>
</select>
<textarea id=t></textarea>
</BODY>查询部分代码<%
'这里省略了查询程序
%>
alert("这里是从数据库里查出来的:<%=news_title%>");
t.value = "<%=news_title%>";
注意,查询程序其实就是用的服务器端写出来的JS代码,load函数里面前四行是用来解析url的,不必理会。
能给我注释一下吗?
把他们一起读出来,下拉框为 model_name里的option的value值就是对应的
description,option的text值是model_name
在select里加上onchange="document.forms[0].description.value=(this.options[this.selectedIndex].value;"
{
getBeanStruct.src = "test.asp?news_id="+a;
}
其实你只要写一句就可以了,这样你能明白了吧?我写那一段只不过是为了能不写死src,并且自动找到当前htm页面的同名asp(php)文件,就是说,如果这么用的话,hello.htm默认的服务器查询程序就是hello.asp,无须手工指定。
您的回答让我觉得有些象绕口令,需要我分析一下,呵呵,开个玩笑:P
谢谢你:)
您教我的方法,我有些不太明白!可以再说的“通俗”些吗?
小妹我才刚刚起步,已经快抓破头皮了:P
xmlhttp
xmldom
隐藏iframe
前两种仅限于ie
我来试试替他解释一下:<SCRIPT LANGUAGE="JavaScript">
<!--
function load(a)
{
var g = new Array();
//定义数组,就不说了吧 var serverScriptType = ".asp?";
//准备了一个字符串,“.asp”是个后缀,不稀奇,不过他在自己的程序里面其实写的是".php",不要给他晃点了 //“?”就有一点意思了,它告诉服务器后面有参数。用“?”传参数的格式是:?参数名=参数值&参数名=参数值.....
//“&”是各组参数之间的分隔符,不过在这个程序中没有用到。 g = location.href.split("?");
//好像没有用到 y = location.pathname.split(".");
//把当前地址对象(http://www.home1000.net/test/runmin/test.htm)的路径名(/test/runmin/test.htm)以小数点为分隔符分解成字符串数组,这个数组的第一个元素为"/test/runmin/test",第二个元素为“.htm” getBeanStruct.src = y[0]+serverScriptType+"news_id="+a;
/*
获得一个新的字符串:上一步的第一个元素"/test/runmin/test" 加上第二步得到的serverScriptType(.asp?)
加上"news_id="再加上函数接收到的参数a(值为“通知”或“房子”之类的)
得到这样一个字符串:“/test/runmin/test.asp?news_id=通知”
不过在他自己的程序里面当然是“/test/runmin/test.php?news_id=通知”啦
然后他的服务器端有个test.php程序,会接收这个news_id参数的值,然后查询数据库,最后根据查询结果返回一段javascript代码
这是从它的服务器上返回回来的代码:
alert("这里是从数据库里查出来的:关于加强房地产开发项目管理的通知");
t.value = "关于加强房地产开发项目管理的通知"
最后,由于来自同一个地址的页面和脚本会被本地缓存,下次就不从服务器再下载了,
所以他提到了new Date(),意思是把时间作为一个参数加进参数表里面去,
这样浏览器就会以为你在要求一个新的脚本了,象这样:
getBeanStruct.src = y[0]+serverScriptType+"news_id="+a + “& time="+new Date();
*/}
//-->
</SCRIPT>唉,罗里罗嗦,越说越复杂,有人要打我了