0

基本上我这里有 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

这是因为您第二次提交表单时未存储发布数据。您可以使用包含数据的隐藏输入来解决此问题。

  <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" />将在您第二次提交表单时重新发送 usernum 数据。

于 2012-07-05T22:44:21.747 回答
0

$usernum提交第二个表格后不会留下。它只是第一种形式。要解决此问题,请在第二个表单中创建一个隐藏的表单元素。

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

这将导致该值不仅在提交第一个表单时提交,而且在第二个表单提交时也会提交,并且您的循环将显示正确数量的输入。

于 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 回答