首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
Java
Web 开发
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
javascript 和 php 同时获取同名表单问题,求助高手,急急急急.........
[已结贴,结贴人:magicone]
加为好友
发送私信
在线聊天
magicone
Mr.Zhao
等级:
发表于:
2008-02-27 21:07:03
楼主
遇到一个很棘手的问题.... 搞不定有丢饭碗的可能..... 大家本着同为学计算机的兄弟,多帮忙.... 分不多,真要是解决了请您吃饭都没问题
我要用php获取几个同名的下拉表单数据,php中的同名的表单名必须用数组如:name[]
但是又要用javascript来做判断控制display, 当选择上一级下拉列表时,下面出现相应的第二级下拉列表。但是javascript中的获取同名数组时是自动取的,也就是只要 name 就可以了,不用后面的[]。而且会自动取成name(0) name(1) .....
我设想javascript 用name[](i)的形式来处理。但是好像不行....
javascript的函数为:
function editban(){
for (var j = 0; j <= 2; j++)
{
document.article.
'ban[]'(i)
.style.display="none" ;
}
if (document.article.newspaper.value == '01) document.article.'ban[]'(0).style.display="" ;
if (document.article.newspaper.value == '02) document.article.'ban[]'(1).style.display="" ;
if (document.article.newspaper.value == '03) document.article.'ban[]'(2).style.display="" ;
}
php页的相关代码
<form name="article" method="post" encType="multipart/form-data" action="edit.php" onsubmit="return checkedit()">
<select name="newspaper" size="1" onchange="return editban()">
<option value= "" > </option>
<option value= "01"> 01 </option>
<option value= "02"> 02 </option>
<option value= "03"> 03 </option>
</select>
<select name="ban[]" size="1" style="display:none" >
<option value= ""> </option>
<option value= "01第一条" > 01第一版 </option>
<option value= "01第二条" > 01第二条 </option>
<option value= "01第三条" > 01第三条 </option>
</select>
<select name="ban[]" size="1" style="display:none">
<option value= ""> </option>
<option value= "02第一条" > 02第一版 </option>
<option value= "02第二条" > 02第二条 </option>
<option value= "02第三条" > 02第三条 </option>
</select>
<select name="ban[]" size="1" style="display:none">
<option value= ""> </option>
<option value= "03第一条" > 03第一版 </option>
<option value= "03第二条" > 03第二条 </option>
<option value= "03第三条" > 03第三条 </option>
</select>
<input class="bginput" accessKey="y" type="submit" value=" 提交 ">
</form>
还有个检查是否已选择的小函数也有此问题
var sum=0 ;
for (var j = 0; j <= 6; j++)
{ if(document.article.
ban[](j)
.value == '')
{
sum=sum+j ;
if (sum>=21)
{
alert('请选择刊发到的版次.');
return false;
break;
}
}
}
有没有好的办法,javascript这边直接把ban[i]拿来用好像不行啊......
急呀........
问题点数:
50
回复次数:
7
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
joybo
等级:
发表于:
2008-02-27 21:40:28
1
楼 得分:
0
可以给同名表单一个同名的id,在javascript中通过id来获取来获取表单数组的值进行处理!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
magicone
Mr.Zhao
等级:
发表于:
2008-02-27 22:21:50
2
楼 得分:
0
噢,如果实现,写个样子可以吗?php我还会点,但是javascript比较烂
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
joybo
等级:
发表于:
2008-02-28 09:26:09
3
楼 得分:
50
先给你的表单增加id:
<select
id="selectban"
name="ban[]" size="1" style="display:none" >
<option value= ""> </option>
<option value= "01第一条" > 01第一版 </option>
<option value= "01第二条" > 01第二条 </option>
<option value= "01第三条" > 01第三条 </option>
</select>
<select
id="selectban"
name="ban[]" size="1" style="display:none">
<option value= ""> </option>
<option value= "02第一条" > 02第一版 </option>
<option value= "02第二条" > 02第二条 </option>
<option value= "02第三条" > 02第三条 </option>
</select>
<select
id="selectban"
name="ban[]" size="1" style="display:none">
<option value= ""> </option>
<option value= "03第一条" > 03第一版 </option>
<option value= "03第二条" > 03第二条 </option>
<option value= "03第三条" > 03第三条 </option>
</select>
然后在javascript中通过document.getElementsByName就可以输出值:
for(i=0;i <document.getElementsByName("selectban").length;i++){
alert(document.getElementsByName("selectban")[i].value);
}
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
stefli
stefli
等级:
发表于:
2008-02-28 09:33:02
4
楼 得分:
0
你为什么要这样取名呢!很奇特哦。
还有就是id在一个页面中最好是 唯一的。比较符合标准。
对于名称相同的。可以用 楼上说的
getElementsByName()获取 。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
joybo
等级:
发表于:
2008-02-28 09:35:28
5
楼 得分:
0
document.getElementsByName可以通过表单name或id取得表单对象
document.getElementsByName("selectban")[i].style.display=''表单就显示
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ymt9624641
等级:
发表于:
2008-02-28 09:49:29
6
楼 得分:
0
3楼的应该吧name设成selectban吧 getElementsByName 获取对象的数组 循环即可
var obj=document.getElementsByName("selectban");
for(i=0;i <obj.length;i++)
{
alert(obj[i].value);
}
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
magicone
Mr.Zhao
等级:
发表于:
2008-02-28 14:06:02
7
楼 得分:
0
搞定了,多谢大家.
另外说一下,表单显示,我写成document.article.selectban(i).style.display="" ; 也可以,效果一样
好像在javascript里()和[]都可以表示数组吧.....
还有,谁知道哪有比较完整的javascript的语法书?最好是chm的,方便用的时候查
谢谢
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友