2012-07-04 33 views
0

我有一個JavaScript創建兩種類型的元素。 在提交表單時添加了PHP代碼,但我在上面顯示了它。顯示動態添加多陣列元素

第一類型看起來像這樣:

<tr class="disc"> 
    <span><?php echo $disc_number ?></span>. 
</tr> 

第二類型看起來像這樣:

<tr class="track"> 
    <input name="trackNumbers[]" value="<?php echo $track_number ?>" /> 
    <input name="discNumbers[]" value="<?php echo $disc_number ?>" /> 
</tr> 

的「軌跡」的元件可以是多個用於一個「盤」元件。

例如:

<tr class="disc"> 
    <span>1</span>. 
</tr> 
<tr class="track"> 
    <input name="trackNumbers[]" value="1" /> 
    <input name="discNumbers[]" value="1" /> 
</tr> 
<tr class="track"> 
    <input name="trackNumbers[]" value="2" /> 
    <input name="discNumbers[]" value="1" /> 
</tr> 
<tr class="disc"> 
    <span>2</span>. 
</tr> 
<tr class="track"> 
    <input name="trackNumbers[]" value="1" /> 
    <input name="discNumbers[]" value="2" /> 
</tr> 
<tr class="track"> 
    <input name="trackNumbers[]" value="2" /> 
    <input name="discNumbers[]" value="2" /> 
</tr> 

爲了表示對提交我使用的每個「軌道」元素「的」命令。

for ($track_i = 0; $track_i < $total_tracks; $track_i++) 

但是,「光盤」元素呢?如何讓我的「光盤」元素也可以在提交時顯示,並在他們之後擁有「追蹤」元素。

回答

1

如果我正確明白你的意思,你需要對光盤的數字線路元件聯繫起來......所以使用多維數組:

<tr class="track"> 
    <input name="trackNumbers[<?php echo $disc_number ?>][]" value="<?php echo $track_number ?>" /> 
</tr> 

如果我沒有記錯,這將產生(在PHP提交時)一個數組數組,其中每個第一級數組(每個磁盤一個)包含一個磁道數組(每個磁道一個)。

foreach($_POST['trackNumbers'] as $discNumber => $tracksArray) { 
... 
1

你現在的設置是你有兩個單獨的陣列軌道和光盤的方式,來獲得相關的適當的盤我會成立input元素,像這樣的曲目編號:

<input name="trackNumbers[1][]" value="2"> 

其中1是光盤編號,您可能需要傳遞一次光盤編號,然後在後端使用它們循環播放並拉出與光盤編號對應的所有曲目。