1

ここに初めて投稿するので、場所を間違えていたら申し訳ありません。私の困難は、最初のフォームが配列として設定されている場合、最初の選択フォームの要素を他のフォームに表示することです。目標は、選択フォームの要素を別のフォームに送信し、それらを db MySQL に記録して、html ページに表示することです。このフォーラムで、2 つの選択フォームを作成し、アイテムを追加して削除する手順を見つけました。その後、MySQL のコマンド .implode を使用して、要素を結合し、db に複数のアイテムを挿入してページに表示できます。しかし、名前の選択フォームを配列として設定すると機能しません。次のスクリプトを使用して、2 つの選択フォームを作成しました。

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

スクリプト、ボタンの部分、2 番目のフォームにコメントを付けて行を変更する場合:

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

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

問題があります。最初の選択フォームのアイテムをデータベースに記録し、ページで表示できます。しかし、それは私の目標ではありません。2つの選択フォームを使用する必要があります。私を助けることができる人はいますか?どうもありがとう。

4

1 に答える 1

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 に送信するか、変数を使用して、2 番目の選択から追加または削除されたすべての html を保存します。

jQuery ライブラリを含めるだけで、すべてがソートされます。私は生の Javascript を長い間書いていませんが、これは jQuery の助けを借りて動作します。2 つの要素に同じ ID を使用しないでください。ID は一意である必要があります。

次に、多数のオプションを挿入すると仮定すると、呼び出し$('#your_form_id).serialize()内で使用して要素の配列を取得し、PHP 手法を使用して name="insertedoption[]" /> を解析できます。$.ajaxいくつかのことを読む必要があるため、私があなたを助けすぎたかどうかは完全にはわかりませんが、これはあなたがする必要があることをどのように行うかについてのアイデアです.

于 2012-04-20T23:20:41.110 に答える