0

基本的にここには2つのフォームがあります。最初は、必要な「セクション」の数を選択する単純なドロップダウン選択です。これらの「セクション」にはそれぞれキーと値が必要なので、フォームが送信されると、ループが実行されます。選択した金額の入力ボックスを別のフォームに生成します。これはすべて正常に機能します。この2番目のフォームが送信されると、入力ボックスが消えます。それはデータを投稿し、文字列は表示されます。

      <?php 
    $userkey = $_POST['key1'];
    $userval = $_POST['val1'];
    $usernum = $_POST['usernum'];
    ?>
<form action='MYPIE.PHP' method='POST'>
                HOW MANY SECTIONS?
                    <select name="usernum">
                          <option>1</option>
                          <option>2</option>
                          <option>3</option>
                          <option>4</option>
                          <option>5</option>
                          <option>6</option>
                          <option>7</option>
                          <option>8</option>
                          <option>9</option>
                    </select>
                <input type="submit" name="submitnum" value="submit" />
        </form>


    <form action='MYPIE.PHP' method='POST'>     
        <?php 
            for ($i=1; $i<$usernum+1; $i++){
                echo "<br>insert key:   <input name='key".$i."' value='hi".$i."'>   insert value:   <input name='val".$i."' value='val".$i."'>";
            }
        ?>
        </br>
        <button type="submit" value="submit" name="submit keys" />
    </form>
4

3 に答える 3

2

これは、2 回目にフォームを送信したときに投稿データが保存されないためです。これは、データを含む非表示の入力で修正できます。

  <form action='MYPIE.PHP' method='POST'>     
    <?php 
        echo '<input type="hidden" value="' . $usernum . '" name="usernum" />'; 
        for ($i=1; $i<$usernum+1; $i++){
            echo "<br>insert key:   <input name='key".$i."' value='hi".$i."'>   insert value:   <input name='val".$i."' value='val".$i."'>";
        }
    ?>
    </br>
    <button type="submit" value="submit" name="submit keys" />
</form>

行:<input type="hidden" value="' . $usernum . '" name="usernum" />は、フォームの 2 回目の送信時に usernum データを再送信します。

于 2012-07-05T22:44:21.747 に答える
0

$usernum2 番目のフォームを送信した後は残りません。第1形態のみです。これを修正するには、2 番目のフォームに非表示のフォーム要素を作成します。

<input type="hidden" name="usernum" value="<?php echo $usernum; ?>" />

これにより、最初のフォームが送信されたときだけでなく、2番目のフォームも送信され、ループは正しい入力数を表示します。

于 2012-07-05T22:45:03.353 に答える
0

これは、投稿された を失うためですusernum。試してみてください。

<?php 
     for ($i=1; $i<$usernum+1; $i++){
           echo "<br>insert key:   <input name='key".$i."' value='hi".$i."'>   insert value:   <input name='val".$i."' value='val".$i."'>";
        }
 ?>
<input type="hidden" name="usernum" value="<?php echo $usernum; ?>">
于 2012-07-05T22:45:43.117 に答える