在同一页面里面,javascript如何向jsp传值

xxj123x 2005-02-02 10:18:48
<script language="javascript">
function returnvalue()
{
var obj=document.all.radiobutton;
for(i=0;i<obj.length;i++)
{
if(obj[i].checked)
{
var a = obj[i].value;
<%
BaseInfo info = new BaseInfo();
info = (BaseInfo)session.getAttribute("user");
int id = info.getUserId();
login.modifyVisul(id,"111111");
%>
}
}
window.returnValue = a;
window.close();
}
</script>
这是我写的一段javascript脚本,我需要在获得用户的选择后,更改数据库里的记录,
我要如何把var a 的值放入“111111"这个位置;
...全文
1409 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxj123x 2005-02-02
  • 打赏
  • 举报
回复
感谢大家,解决问题了,马上散分
chenghaofeng 2005-02-02
  • 打赏
  • 举报
回复
通常的做法是把数据放在一个input当中,submit传个后台的。
hsdxhc 2005-02-02
  • 打赏
  • 举报
回复
<script language="javascript">
function returnvalue()
{
var obj=document.all.radiobutton;
for(i=0;i<obj.length;i++)
{
if(obj[i].checked)
{
var a = obj[i].value;
var form1 = document.createElement("<form method='post' action='目的文件' target='[注1]'>");
var input1 = document.createElement("<input name="newvalue" type='hidden' value='"+a+"'>");
form1.appendChild(input1);
document.appendChild(form1);
form1.submit();
}
}
window.returnValue = a;
window.close();
}
</script>


<%
BaseInfo info = new BaseInfo();
info = (BaseInfo)session.getAttribute("user");
int id = info.getUserId();
login.modifyVisul(id,request.getParameter("newvalue"));
%>

注一:通常情况action可以是自身这个jsp文件,或者是一个新的jsp文件,但都得包含上面这段java代码咯,如果是自身文件,可以使用target='_self',如果是一个新文件,可以在页面上生成一个0x0大小的iframe,target就指向它。前者用法减少文件数,但是执行时页面会整个重新load一下,闪,后者的用法页面就不会load咯。

你原来的思路肯定是错误的,搞清楚服务端代码与客户端代码的执行顺序。
yeyu710 2005-02-02
  • 打赏
  • 举报
回复
我看还是GJA106(中文字符) ( )的方法好了点,但不知道可不可以!
ratduck 2005-02-02
  • 打赏
  • 举报
回复
可以通过下面的httpGet()方法实现。
function httpGet(sUrl) {
var sErrXML="<?xml version=\"1.0\" encoding=\"gb2312\" ?><juncomsg><state>error</state><message>系统错误</message></juncomsg>";
var xmlhttp = getXmlHttp();
var oXML;
try {
xmlhttp.Open("GET", sUrl, false);
xmlhttp.send();
oXML=xmlhttp.responseXML.documentElement;
//if (oXML==null || !oXML.childNodes.length) throw "";
if (oXML==null) throw "";
}
catch(e) {
oXML=getXmlDocument();
oXML.loadXML(sErrXML);
oXML=oXML.documentElement;
}
return oXML;
}

function getXmlHttp(){
return new ActiveXObject("Microsoft.XMLHTTP");
}

在得到var a的值以后,执行 var content=httpGet(***.jsp?***);
其中***.jsp要用xml文件格式输出。
wangzhanlili 2005-02-02
  • 打赏
  • 举报
回复
要JAVASCRIPT向JSP传值是可以做到,但不是这种写法的,你可用JAVASCRIPT向一个INPUT里写值,再提交到JSP去才行
---------
同意,不过有个页面转化过程
SeaBirds 2005-02-02
  • 打赏
  • 举报
回复
你的思路错了
login.modifyVisul(id,"111111");你的这句是在jsp服务器上就运行完了,而
var a = obj[i].value;是JAVASCRIPT是在客户端浏览器运行的,在浏览器里是没有
<%
BaseInfo info = new BaseInfo();
info = (BaseInfo)session.getAttribute("user");
int id = info.getUserId();
login.modifyVisul(id,"111111");
%>
这段代码运行的
先搞清这两段代码的运行地方再说吧,并不是按顺序执行的
要JAVASCRIPT向JSP传值是可以做到,但不是这种写法的,你可用JAVASCRIPT向一个INPUT里写值,再提交到JSP去才行
所以你这个问题根本就是思路错误,先把思路理清吧再发问吧
GJA106 2005-02-02
  • 打赏
  • 举报
回复
没法把javascript中的值直接传到java代码中,可以通过session或request来完成楼主的要求:在javascript中setAttribute,然后在java代码中getAttribute

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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