2011-07-27 30 views
4

我有一個從PHP查詢數據庫創建的下拉菜單,然後使用foreach循環創建該下拉菜單的選項列表。JavaScript可以複製DOM中的元素嗎?

但是在我的表單中,用戶可能需要輸入更多相同的字段,所以我想知道是否有可能讓JavaScript複製像所有值一樣的下拉元素,然後將其複製到相同的表單中?

爲什麼我的想法是這樣的,因爲我似乎無法找到一種方法,一個PHP數組傳遞給JavaScript,或者至少我無法找到一個方法來做到這一點:(

回答

0

我不記得純javascript的方式,用jQuery你可以用clone的方法,但是我不會使用這種方法,因爲您會得到相同的帖子名稱。除非你需要動態表單,否則最好在php中完成。在這種情況下,克隆是解決方案,但在做這些時請留意輸入名稱。

+2

簡單的方法是'element.cloneNode()'。不難。 :-) – RobG

2

是的,你可以使用DOM方法去做,但更好的是,使用jQuery,並期待在clone方法:。http://api.jquery.com/clone/

您可以通過它序列化到JSON對象傳遞一個PHP數組的Javascript,但這是另一個故事

+0

不是說你錯了,但'更好呢'? – Wrikken

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

這使您可以選擇多個選項(enter link description here

+0

是的,我的意思是這樣的。 – sqlmole

-1

如果你想傳遞一個PHP陣列的JavaScript,你實際上可以做到以下幾點:

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

請不要爲此使用jQuery! jQuery非常棒,但將整個庫包含在這個簡單的東西當中是毫無意義的。除非你已經使用jQuery,否則你應該使用Javascript的cloneNode()函數。當然,您也可以使用Ajax與PHP進行通信,但「只是」Javascript更快更簡單。

+1

我打算髮表我自己的答案,但你的方法幾乎相同。所以,如果你允許,我會提供一個[JS Fiddle演示,使用'cloneNode()'](http://jsfiddle.net/davidThomas/7Sd4W/1/)。 –

相關問題