2014-09-29 169 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()浏览数据。 我认为这可能有效。