请求帮忙,javascript变量传递问题(重要)
有以下代码,请问如何从左边选择到右边之后,得到一个数组传到另一个PHP页面去?高人请指点,重要重要重要重要!!!<HTML><HEAD><TITLE>BY201203</TITLE>
<META http-equiv=Content-Type content="text/html; charset=??????">
<SCRIPT language=Javascript>
//****************************************************
function gy1() {
if (Tform.cp1.options.length==0&&Tform.cp2.options.length==0){
alert("--请选择主要产品!--");
return false;
}
if (Tform.hy1.options.length==0){
alert("--请选行业分类!--");
return false;
}
if (confirm('请确认正确?')){
var cp1_1=new Array(),cp2_1=new Array(),hy1_1=new Array();
for(var i = 0; i <Tform.cp1.options.length; i++) {
Tform.cp1.options[i].selected=true;
cp1_1[i]=Tform.cp1.options[i].value;}
for(var i = 0; i <Tform.cp2.options.length; i++) {
Tform.cp2.options[i].selected=true;
cp2_1[i]=Tform.cp2.options[i].value;}
for(var i = 0; i <Tform.hy1.options.length; i++) {
Tform.hy1.options[i].selected=true;
hy1_1[i]=Tform.hy1.options[i].value;}
document.forms[0].submit();
}
}
//****************************************************
function all_del_cp(){
for(var i = 0; i <Tform.cp2.options.length; i++) {
document.Tform.cp2.options[i].selected=false;
}
document.Tform.cp2.options.length = 0;
}
//****************************************************
function add_sele_cp(){
var j=Tform.cp2.options.length,rep=false;
for(var i = 0; i <Tform.cp.options.length; i++) {
if (Tform.cp.options[i].selected){
for(var k = 0; k <Tform.cp2.options.length; k++) {
if (Tform.cp2.options[k].value==Tform.cp.options[i].value){
rep=true;
}
}
for(var k = 0; k <Tform.cp1.options.length; k++) {
if (Tform.cp1.options[k].value==Tform.cp.options[i].value){
rep=true;
}
}
if (rep==false) {
Tform.cp2.add(document.createElement("OPTION"));
Tform.cp2.options[j].text = document.Tform.cp.options[i].text;
Tform.cp2.options[j].value = document.Tform.cp.options[i].value;
j++;
}
}
}
}
//****************************************************
function del_sele_cp(){
for(var i = 0; i <Tform.cp2.options.length; i++) {
if (Tform.cp2.options[i].selected){
document.Tform.cp2.options[i]=null;
break;
}
}
}
//*****************
function all_del_hy(){
for(var i = 0; i <Tform.hy1.options.length; i++) {
document.Tform.hy1.options[i].selected=false;
}
document.Tform.hy1.options.length = 0;
}
//****************************************************
function add_sele_hy(){
var j=Tform.hy1.options.length,rep=false;
for(var i = 0; i <Tform.hy.options.length; i++) {
if (Tform.hy.options[i].selected){
for(var k = 0; k <Tform.hy1.options.length; k++) {
if (Tform.hy1.options[k].value==Tform.hy.options[i].value){
rep=true;
}
}
if (rep==false) {
Tform.hy1.add(document.createElement("OPTION"));
Tform.hy1.options[j].text = document.Tform.hy.options[i].text;
Tform.hy1.options[j].value = document.Tform.hy.options[i].value;
j++;
}
}
}
}
//****************************************************
function del_sele_hy(){
for(var i = 0; i <Tform.hy1.options.length; i++) {
if (Tform.hy1.options[i].selected){
document.Tform.hy1.options[i]=null;
break;
}
}
}
//*****************
</SCRIPT>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY vLink=#ffffff aLink=#ffffff link=#ffffff bgColor=white background="">
<BR>
<FORM name=Tform action=b201b203_1_2.php method=post>
<P align=center>
<TABLE class=p9 cellSpacing=0 cellPadding=0 width=678 border=0 align="center">
<TBODY>
<TR>
<TD class=p12 align=middle colSpan=3>选择主要产品的产品代码</TD></TR>
<TR>
<TD><SELECT style="WIDTH: 303px" multiple size=15 name=cp>
<option value="00005">00005-企业用电量</option>
<option value="00017">00017-原煤 ▲</option>
<option value="00409">00409-洗煤</option>
<option value="00413">00413-天然原油 ▲</option>
<option value="00420">00420-天然气</option>
<option value="00499">00499-铁矿石原矿量</option>
<option value="00628">00628-铜精矿含铜量</option>
<option value="00659">00659-铅精矿含铅量</option>
<option value="00673">00673-锌精矿含锌量</option>
<option value="00739">00739-锡精矿含锡量</option>
</SELECT> </TD>
<TD align=middle><INPUT onclick=add_sele_cp() type=button value="添加->" name=cp_Add_1><BR><BR>
<INPUT onclick=del_sele_cp() type=button value="<-删除" name=cp_del_1><BR><BR>
<INPUT onclick=all_del_cp() type=button value="<=全部删除" name=cp_del_a><BR><BR>
</TD>
<TD><SELECT style="WIDTH: 303px" multiple size=7 name="cp1">
</SELECT>
<SELECT style="WIDTH: 303px" multiple size=7 name="cp2">
</SELECT>
</TD></TR>
<TR>
<TD class=p12 align=middle colSpan=3>选择行业分类</TD></TR>
<TR>
<TD><SELECT style="WIDTH: 303px" multiple size=15 name=hy>
<OPTION value=0911>0911-铜矿采选</OPTION>
<OPTION value=0912>0912-铅锌矿采选</OPTION>
<OPTION value=0913>0913-镍钴矿采选</OPTION>
<OPTION value=0914>0914-锡矿采选</OPTION>
<OPTION value=0915>0915-锑矿采选</OPTION>
<OPTION value=0916>0916-铝矿采选</OPTION>
<OPTION value=0917>0917-镁矿采选</OPTION>
</SELECT> </TD>
<TD align=middle>
<INPUT onclick=add_sele_hy() type=button value="添加->" name=hy_Add_1><BR><BR>
<INPUT onclick=del_sele_hy() type=button value="<-删除" name=hy_del_1><BR><BR>
<INPUT onclick=all_del_hy() type=button value="<=全部删除" name=hy_del_a><BR><BR>
</TD>
<TD><SELECT style="WIDTH: 303px" multiple size=15 name="hy1">
</SELECT> </TD></TR>
<TR>
<TD align=middle colSpan=3><BR><BR>
<INPUT class=bot onclick=gy1() type=button value=" 确 定 " name=SUBMIT></TD></TR></TBODY></TABLE><p>
</FORM></BODY></HTML> 没有人可以回答我吗?请帮帮忙!! 你设一个JS变量(数组),将选中的ID一一记下啦,然后post过去吧~ 我也想过这样,但是用户选了之后又从右边删除了呢?那又不好判断该怎么从数组中删去一个。 这个问题我也遇到了
你可以把右边要提交的列表中的值存储到一个隐藏域中
<input type=hidden name=hiddenvalue value=hiddenvalue> 哦 对 可以这样控制,但是用户从左边选择到右边之后,又从右边删除了呢,那又该如何应对呢? 隐藏域中value值,可以时时取右边列表的值。 就这个问题我还有点疑惑,我们可以一起探讨一下:
隐藏域 <input type=hidden name=hidden value=rightvalue>
假设rightvalue 是从左边往右边的列表传送的值。
<input type=hidden name=hidden value="javascript:thisform.rightvalue.value">
不知这样可否得到右边列表的值,如果左边往右边传送多个值是那么隐藏域的值就因该是个数组了。就这个问题我们可以详细的讨论一下。 没错,我就是想得到这个数组。请看一看函数:
function gy1() {
if (Tform.cp1.options.length==0&&Tform.cp2.options.length==0){
alert("--请选择主要产品!--");
return false;
}
if (Tform.hy1.options.length==0){
alert("--请选行业分类!--");
return false;
}
if (confirm('请确认正确?')){
var cp1_1=new Array(),cp2_1=new Array(),hy1_1=new Array();
for(var i = 0; i <Tform.cp1.options.length; i++) {
Tform.cp1.options[i].selected=true;
cp1_1[i]=Tform.cp1.options[i].value;}
for(var i = 0; i <Tform.cp2.options.length; i++) {
Tform.cp2.options[i].selected=true;
cp2_1[i]=Tform.cp2.options[i].value;}
for(var i = 0; i <Tform.hy1.options.length; i++) {
Tform.hy1.options[i].selected=true;
hy1_1[i]=Tform.hy1.options[i].value;}
document.forms[0].submit();
}
}
这其中就有为了得到右边列值的语句,但是传到另一个页面却得不到想要的数组 左边往右边传多个值,右边的列表本身就是数组了。比如右边列表name="right[ ] " 这样传过取得值肯定是数组。 有一没有必要定义成数组了 这是我在网上找到的例子,可以解决这些问题了,你看看吧!
脚本说明:
把如下代码加入<body>区域中
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var delimiter = ":";
function MoveOption (MoveFrom, MoveTo, ToDo) {
var SelectFrom = eval('document.main_form.'+MoveFrom);
var SelectTo = eval('document.main_form.'+MoveTo);
var SelectedIndex = SelectFrom.options.selectedIndex;
var container;
if (ToDo=='Add') {
container=eval('document.main_form.'+ToDo+MoveTo);
}
if (ToDo=='Remove') {
container=eval('document.main_form.'+ToDo+MoveFrom);
}
if (SelectedIndex == -1) {
alert("请选择一个用户");
} else {
for (i=0; i<SelectFrom.options.length; i++) {
if(SelectFrom.options[i].selected) {
var name = SelectFrom.options[i].text;
var ID = SelectFrom.options[i].value;
SelectFrom.options[i] = null;
SelectTo.options[SelectTo.options.length]=new Option (name,ID);
i=i-1;
if(ToDo=='Add'||ToDo=='Remove') {
container.value=container.value+name+delimiter;
//container.value=container.value+ID+delimiter;
}
}
}
}
}
function CheckDuplicates (AddListContainer, RemoveListContainer) {
var AddList = eval('document.main_form.'+AddListContainer);
var RemoveList = eval('document.main_form.'+RemoveListContainer);
var TempAddList = AddList.value;
var TempRemoveList = RemoveList.value;
if (TempAddList>''&&TempRemoveList>'') {
TempAddList = TempAddList.substring(0,TempAddList.length-1);
TempRemoveList = TempRemoveList.substring(0,TempRemoveList.length-1);
var AddArray = TempAddList.split(delimiter);
var RemoveArray = TempRemoveList.split(delimiter);
for (i=0; i<AddArray.length; i++) {
for (j=0; j<RemoveArray.length; j++) {
if (AddArray[i]==RemoveArray[j]) {
AddArray[i]='';
RemoveArray[j]='';
break;
}
}
}
AddList.value='';
for (i=0; i<AddArray.length; i++) {
if (AddArray[i]>'') {
AddList.value = AddList.value + AddArray[i] + delimiter;
}
}
RemoveList.value='';
for (i=0; i<RemoveArray.length; i++) {
if (RemoveArray[i]>'') {
RemoveList.value = RemoveList.value + RemoveArray[i] + delimiter;
}
}
}
}
function LockChanges() {
CheckDuplicates('AddAdmins','RemoveAdmins');
CheckDuplicates('AddUsers','RemoveUsers');
}
// End -->
</script>
<table align="center">
<tr><td>
<FORM name=main_form action="" method=post><INPUT type=hidden name=AddAdmins>
<INPUT type=hidden name=RemoveAdmins> <INPUT type=hidden name=AddUsers> <INPUT
type=hidden name=RemoveUsers>
<div align="center">
<table cellspacing="0" cellpadding="5" border="0">
<tbody>
<tr>
<td valign="top" align="middle" rowspan="2">备选用户<br><select multiple size="12" name="Employees">
<option>Employee_01<option>Employee_02<option>Employee_03<option>Employee_04<option>Employee_05<option>Employee_06<option>Employee_07<option>Employee_08<option>Employee_09<option>Employee_10</option></select>
</td>
<td>
<p align="center"><input onclick="MoveOption('Employees','Admins','Add');" type="button" value="增加Admin >>" name=add_admin>
</p>
<p align="center"><input onclick="MoveOption('Admins','Employees','Remove');" type="button" value="<< 删除Admin" name="remove_admin">
</p></td>
<td valign="top" align="middle">Administrators<br><select multiple size="5" name="Admins">
<option>Admin_01<option>Admin_02<option>Admin_03<option>Admin_04<option>Admin_05</option></select>
</td></tr>
<tr>
<td>
<p align="center"><input onclick="MoveOption('Employees','Users','Add');" type="button" value="增加User >> " name=add_user>
</p>
<p align="center"><input onclick="MoveOption('Users','Employees','Remove');" type="button" value=" << 删除User " name="remove_user">
</p></td>
<td valign="top" align="middle">Users<br><select multiple size="5" name="Users">
<option>User_01<option>User_02<option>User_03<option>User_04<option>User_05</option></select>
</td></tr>
</tbody>
</table>
</div>
</FORM>
</td></tr>
<tr><td>
<div align="center"><input onclick="LockChanges();" type="button" value="保存修改"></div>
<BR>
<div align="center">
<a href="javascript:alert(document.main_form.AddAdmins.value);">查询增加的Admin</a>
<br>
<a href="javascript:alert(document.main_form.RemoveAdmins.value);">查询删除的Admin</a>
<br>
<a href="javascript:alert(document.main_form.AddUsers.value);">查询增加的User</a>
<br>
<a href="javascript:alert(document.main_form.RemoveUsers.value);">查询删除的User</a>
</div>
</td></tr>
</td></tr>
</table>
页:
[1]
