2014-09-29 204 views
0

我不是100%肯定的什麼,我甚至問正確的術語,但我目前有正在張貼有元素的數組形式:HTML元素陣列 - 多維

<form> 
    <input type="text" name="album_songs[0][title]" value="Let It Go" /> 
    <input type="text" name="album_songs[0][writer]" value="Robert Lopez, Kristen Anderson-Lopez" /> 
    <input type="text" name="album_songs[0][composer]" value="Frozen" /> 
    <input type="text" name="album_songs[0][length]" value="3:44" /> 
    <input type="text" name="album_songs[0][genre]" value="Soundtrack, Music, Animated" /> 
    <input type="text" name="album_songs[0][songorder]" value="5" /> 

    <input type="text" name="album_songs[1][title]" value="Love Is An Open Door" /> 
    <input type="text" name="album_songs[1][writer]" value="Robert Lopez" /> 
    <input type="text" name="album_songs[1][composer]" value="Frozen" /> 
    <input type="text" name="album_songs[1][length]" value="2:07" /> 
    <input type="text" name="album_songs[1][genre]" value="Soundtrack, Music, Animated" /> 
    <input type="text" name="album_songs[1][songorder]" value="4" /> 
</form> 

而且在我的代碼,我可以訪問這些元素像下面這樣:

$songs = $_POST["album_songs"]; 

foreach($songs as $song) { 
    $title = $song["title"]; 
    $writer = $song["writer"]; // turn into array?? 
    $composer = $song["composer"]; 
    $length = $song["length"]; 
    $genre = $song["genre"]; // turn into array?? 
    $songorder = $song["songorder"]; 
} 

我想什麼有發生,不僅有歌曲的陣列,也作家和流派的數組。這甚至有可能嗎?我試圖嘲笑類似下面的東西,但它沒有工作:

<input type="text" name="album_songs[4][genre[0]]" value="Soundtrack" /> 
<input type="text" name="album_songs[4][genre[1]]" value="Music" /> 
<input type="text" name="album_songs[4][genre[2]]" value="Animated" /> 

任何建議,或者它甚至有可能嗎?

回答

1

我可能會考慮一個下拉菜單,但你幾乎擁有了:

<input type="text" name="album_songs[4][genre][]" value="Soundtrack" /> 
<input type="text" name="album_songs[4][genre][]" value="Music" /> 
<input type="text" name="album_songs[4][genre][]" value="Animated" /> 

給出了這樣的:

Array 
(
    [4] => Array 
     (
      [genre] => Array 
       (
        [0] => Soundtrack 
        [1] => Music 
        [2] => Animated 
       ) 
     ) 
) 
+0

這真是棒極了!謝謝@AbraCadaver! – Keith 2014-09-29 18:15:58

0

嘗試使用方括號語法將表單輸入轉換爲數組。

I.E. :

<input type="text" name="album_songs_title[]" value="Title1" /> 
<input type="text" name="album_songs_title[]" value="Title2" /> 

然後,您將能夠使用foreach()瀏覽數據。 我認爲這可能有效。