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>

为了在提交时显示每个“track”元素,我使用了“for”命令。

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

但是“圆盘”元素呢?如何使我的“光盘”元素在提交时也显示,并在它们之后显示它们的“轨道”元素。

4

2 回答 2

1

如果我正确理解您的意思,您需要将轨道元素与光盘编号相关联......所以使用多维数组:

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

如果我没记错的话,这将产生(在提交时在 PHP 中)一个数组数组,其中每个第一级数组(每个磁盘一个)包含一个轨道数组(每个轨道一个)。

foreach($_POST['trackNumbers'] as $discNumber => $tracksArray) {
...
于 2012-07-04T23:09:23.843 回答
1

你现在设置它的方式是你有两个单独的数组轨道和光盘,为了获得与正确光盘关联的轨道号,我会像这样设置输入元素:

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

其中 1 是光盘编号,您可能希望传入一次光盘编号,然后在后端使用它们循环并拉出与光盘编号对应的所有轨道。

于 2012-07-04T23:09:38.927 回答