繁体   English   中英

HTML元素数组-多维

[英]HTML Element Arrays - Multidimensional

我不确定要问的是正确的术语,但我目前正在发布带有包含一系列元素的表单:

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

有什么建议吗,甚至可能吗?

我可能会考虑一个下拉列表,但您几乎可以做到:

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

尝试使用方括号语法将表单输入转换为数组。

IE浏览器:

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

然后,您将可以使用foreach()浏览数据。 我认为这可能有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM