2011-07-27 18 views
4

PHPからデータベースをクエリしてプルダウンメニューを作成し、foreachループを使用してそのプルダウンメニューのオプションリストを作成します。JavascriptではDOM内の要素を複製できますか?

しかし私のフォームでは、同じフィールドに複数のフィールドを入力する必要があるので、すべての値を持つプルダウンのような要素をコピーして同じフォームにコピーすることは可能でしょうか?

私はJavaScriptにPHPの配列を渡す方法を見つけるか、少なくとも私はそれを行うための方法を見つけることができないように見えることはできませんので:(

答えて

0

私は平易なjavascriptの方法を覚えていませんが、jQueryではcloneメソッドを使用できます私はあなたが同じ投稿名を得るので、このアプローチを使用しません。あなたが動的フォームを必要としない限り、phpでこれを行う方がよいでしょう。その場合、クローンが解決策ですが、そのときに入力名に注意してください。

+2

普通の方法は 'element.cloneNode()'です。難しくない。 :-) – RobG

2

はい、あなたはなぜ私は、このように考えていますDOMメソッドを使用して、それを行うが、いっそのこと、jQueryのを使用してclone方法を見ることができます。http://api.jquery.com/clone/

をあなたはJSONオブジェクトにシリアライズしてJavaScriptにPHPの配列を渡すことができ、それはまた別の話です

+0

あなたは間違っているのではなく、「より良い」ということはありませんか? – Wrikken

-1

あなたが意味するか。これはあなたがJavaScriptにPHP-配列を渡したい場合は、あなたが実際に行うことができ、次のように複数の選択肢(enter link description here

+0

はい私はそれのようなものを意味します。 – sqlmole

-1

を選択することができます

<select name="top5" size="5" multiple=""> 
    <option>Heino</option> 
    <option>Michael Jackson</option> 
    <option>Tom Waits</option> 
    <option>Nina Hagen</option> 
    <option>Marianne Rosenberg</option> 
</select> 

のようなもの:

var php_array = eval('(' + <?php echo json_encode($php_array); ?> + ')'); 
5

これにはjQueryを使用しないでください。 jQueryは素晴らしいですが、ライブラリ全体をこのような単純なものに含める必要はありません。すでにjQueryを使用していない限り、JavascriptのcloneNode()関数を使用する必要があります。もちろん、Ajaxを使用してPHPと通信することもできますが、「ちょうど」Javascriptは高速で簡単です。

+1

私は自分の答えを投稿しようとしていましたが、あなたと同じアプローチです。だから、もし許せば、私は[cloneNode() '](http://jsfiddle.net/davidThomas/7Sd4W/1/)を使って[JS Fiddleのデモを提供します。 –

関連する問題