日期:2014-05-17  浏览次数:20860 次

js中的值可否用于<% %>中
问题是这样的:(动态表单对表单域读写)
        表单中有下拉列表从数据库中获取值,如:
<select   name= "PutType "   id= "PutType "   style= "width:60px "onchange= "Pic_Change1() "> <option   value= " "> 请选择 </option>
<%  
Sqlt= "Select   *   From   AdType "
set   Rsm=Server.CreateObject( "ADODB.RecordSet ")
Rsm.Open   Sqlt,Conn,1,3
Do   While   Not   Rsm.Eof  
  %> <option   value= " <%=   Rsm( "ID ")   %> "> <%=   Rsm( "PutType ")   %> </option>
<%  
Rsm.MoveNext
Loop
Rsm.Close
Set   Rsm=Nothing
  %> </select>

现在想做得是,当上面下拉列表菜单改变时获取他的值并根据获取的值从数据库查找相应的数据,将找到的数据在js函数中经过运算后赋值给一个表单域。整个过程不提交表单。
function   Pic_Change1(){
if(document.frm_pic.PutType.options[frm_pic.PutType.SelectedIndex].value!= " "){
document.frm_pic.EndTime.Value= "要得到的值 ";//就是要得到这个表单域的值,就是当选择一个下拉菜单的值时,表单域EndTime的值自动算出,不同的下拉菜单值EndTime会有不同的结果
        }
}
不管是从 <%   %> 到js函数,还是从js到 <%   %> ,只要能实现就行

------解决方案--------------------
给你个列子:
<script>
function Get(id)
{
document.frames[ "cityframe "].location.replace( "get.asp?id= "+id);
}
</script>
<body>
<iframe height=0 width=0 src= " " id= "cityframe "> </iframe>
<select name= "PutType " id= "PutType " style= "width:60px "onchange= "Get(this.options[this.selectedIndex].value) "> <option value= " "> 请选择 </option>
<%
Sqlt= "Select * From AdType "
set Rsm=Server.CreateObject( "ADODB.RecordSet ")
Rsm.Open Sqlt,Conn,1,3
Do While Not Rsm.Eof
%> <option value= " <%= Rsm( "ID ") %> "> <%= Rsm( "PutType ") %> </option>
<%
Rsm.MoveNext
Loop
Rsm.Close
Set Rsm=Nothing
%> </select>

get.asp的内容:
<!--#Include File= "conn.asp " -->
sql= "select id,pic from b where id= "&request( "id ")
set rs=conn.execute(sql)
if not rs.eof
nn=rs( "pic ")
rs.close
conn.close
set conn=nothing
<script>
window.opener.frm_pic.EndTime.value= " <%=nn%> ";
</script>
------解决方案--------------------
分清楚客户端服务端
------解决方案--------------------
可以在一个页面实现,但是需要提交表单,刷新页面
你可以采用以下两种方式解决
1、AJAX
2、者隐藏的IFrame或Frame
------解决方案--------------------
给你一个东西

prototype.js

function loadCustom(_1,_2){
var _3= " ";
var _4=new Ajax.Request(_1,{method: "get ",parameters:_3,onComplete:function(_5){
$(_2).innerHTML=_5.responseText;
//alert(_5.responseText);
}});
}
loadCustom( '?id=1 ', 'divid ')