2012-04-20 46 views
1

这是我的第一篇文章,我很抱歉,如果我错了地方。 如果第一个表单设置为数组,则我的难点是将第一个选择表单的元素查看到另一个表单。 目标是将选择表单的元素发送到另一个表单,然后将它们记录在数据库MySQL上,这会将它们显示在HTML页面上。 我在这个论坛中找到了如何创建两个选择表单并添加'n删除项目,然后用命令.implode的MySQL可以加入元素并在数据库中插入多个项目并在页面上查看它们。 但是,如果我将名称的选择窗体设置为数组,它不起作用。我用下面的脚本有两个选择形式:发送选择表单的元素到另一个

<script language="javascript"> 
function getOpt(select1,select2) 
{ 
for (bCnt=0;bCnt<select1.length;bCnt++) 
{ 
if (select1.options[bCnt].selected) 
{ 
newOpt=new 
Option(select1.options[bCnt].text,select1.options[bCnt].value,false,false); 
select2.options[select2.length]=newOpt; 
} 
} 
} 

function remOpt(select2) 
{ 
for (bCnt=0;bCnt<select2.length;bCnt++) 
{ 
if (select2.options[bCnt].selected) 
select2.options[bCnt]=null; 
} 
} 
</script> 

则选择形成:

<table border="0"> 
<tr> 
<td> 
<label for="id">List:<br></label> 
<select name="oneS" id="select_role" size=20 required multiple="multiple"/> 
<option value="101">101</option> 
<option value="102">102</option> 
<option value="103">103</option> 
<option value="104">104</option> 
<option value="105">105</option> 
<option value="106">106</option> 
</select> 
</td> 
<td> 
<input type="button" value="Add"onClick="getOpt(this.form.oneS,this.for m.twoS)"><br> 
<input type="button" value="Remove"onClick="remOpt(this.form.twoS)"> 
</td> 
<td> 
<label for="id">Members List:<br></label> 
<select name="twoS" id="select_role" size=20 multiple="multiple"/> 
</select> 
</td> 
</tr> 
</table> 

如果评论脚本,按钮的部分,第二种形式和改线:

<select name="oneS" id="select_role" size=20 required multiple="multiple"/> 

<select name="oneS[]" id="select_role" size=20 required multiple="multiple"/> 

我有什么问题,可以记录数据库上的第一个选择表单的项目,并在页面上查看它们。 但这不是我的目标,我不得不使用2选择形式。 有没有人可以帮助我?非常感谢。

回答

0

我有你使用jQuery,那就是:

$(document).ready(function() 
{ 
$('.add').click(function(event)//this is your first form, with the id "select_role" 
{ 
$('#select_role2).html($(this).html()+"add whatever html code you want to insert into here"); 
}); 
}); 

用于删除项目同样的想法。 然后使用$ .ajax或$ .post将数据发送到mysql或使用变量来存储从第二个选择中添加或删除的所有html。

只需包括jQuery库,你就全部排序。我很久没有写过原始的JAvascript,但是这会在jQuery的帮助下工作。不要再为两个元素使用相同的ID。该ID必须是唯一的。

然后假设您插入了大量选项,您可以在$.ajax调用中使用$('#your_form_id).serialize()获取元素数组,然后使用PHP技术来解析name =“insertedoption []”/>。我不完全确定我对你的帮助太大了,因为你需要阅读几件事情,但这是一个关于如何做你需要做的事情的想法。

+0

你能举个例子吗?谢谢 – 2012-04-21 10:44:39

+0

究竟是什么样的例子?请更具体一点。 – 2012-04-21 11:39:07

+0

如何将脚本代码应用到我的上述代码中,我不是jQuery的专家,只是为了理解它,我将单独修改其余的代码。 – 2012-04-21 12:40:07

相关问题