0

2種類の要素を作成するJavaScriptがあります。PHPコードはフォームの送信時に追加されますが、上に示しています。

最初のタイプは次のようになります。

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

2番目のタイプは次のようになります。

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

「track」要素は、1つの「disc」要素に対して複数にすることができます。

例えば:

<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」要素を表示します。

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 で) 配列の配列が生成され、各第 1 レベルの配列 (ディスクごとに 1 つ) にはトラックの配列 (トラックごとに 1 つ) が含まれます。

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

これをセットアップする方法は、トラックとディスクの 2 つの別個の配列を持っていることです。適切なディスクに関連付けられたトラック番号を取得するには、次のように入力要素をセットアップします。

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

1 はディスク番号です。一度ディスク番号を渡してから、バックエンドでそれらを使用して、ディスク番号に対応するすべてのトラックをループして引き出します。

于 2012-07-04T23:09:38.927 に答える