将选择表单的元素发送到另一个表单

时间:2012-04-20 22:54:31

标签: javascript

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

<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"/>

我有任何问题,可以在db上记录第一个选择表单的项目并在页面上查看它们。 但这不是我的目标,我必须使用2种选择形式。 有人可以帮助我吗?非常感谢。

1 个答案:

答案 0 :(得分: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必须是唯一的。

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