0

我对 php 有点陌生,所以也许这个问题很愚蠢。

说我有一个表格:

<form id="createNewGallery" name="newgallery" method="GET" action="code.php"><p><strong>please choose the number of pictures you want to upload:
  </strong>
  <select name="numOfPictures" id="numOfPictures">

      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
  </select></p>
  <input name="submitNumOfPictures" type="submit" />
</form>

通过提交此表单,我想在之后添加另一个表单,我知道我可以在这个特定页面中执行此操作,但我只是希望我的代码不要乱七八糟,所以我想在另一个页面中执行此操作,例如 code.php

这是代码:

<?php

if (isset($_GET['numOfPictures'])){

    $times = $_GET['numOfPictures'];
    for ($i = 1; $i <= $times; $i++){
        echo '<br />select picture number '.$i.': <br />';
        echo '<input name="file'.$i.'" type="file" />';

    }
    echo '</br><input name="submitFiles" type="submit" />';

}

我得到的结果是新页面code.php中的输出,但我希望它在我的索引php上创建一个表单。

如果我在索引页面中进行 mt php 编码,我会得到所需的结果。

4

3 回答 3

0

正如 Filippo Toso 所说,您可以在 code.php 中包含 HTML 文件。

也许,如果您不想拥有两个文件,您可以只制作一个文件并将表单设置为:

<form id="createNewGallery" name="newgallery" method="GET" action="./"><p><strong>please choose the number of pictures you want to upload:
  </strong>
  <select name="numOfPictures" id="numOfPictures">
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
  </select></p>
  <input name="submitNumOfPictures" type="submit" />
</form>
<?php

if (isset($_GET['numOfPictures'])){

    $times = $_GET['numOfPictures'];
    for ($i = 1; $i <= $times; $i++){
        echo '<br />select picture number '.$i.': <br />';
        echo '<input name="file'.$i.'" type="file" />';

    }
    echo '</br><input name="submitFiles" type="submit" />';

}
?>

(注意表格的“动作”)

与以前的解决方案相比,这可能毫无意义,但如果您不想拥有两个文件,您可以一次完成,这样一旦提交,您将在表单之后立即获得结果,而无需任何其他页面!

编辑:忘了提我想你的文件名为“index.php”。如果没有,只需将“./”替换为正确的地址!

于 2013-08-26T16:35:00.857 回答
0

试试这个

<form id="createNewGallery" name="newgallery" method="post" action="code.php">
<p><strong>
please choose the number of pictures you want to upload:
  </strong>
  <select name="numOfPictures" id="numOfPictures">

      <option value="3">3</option>
      <option  value="4">4</option>
      <option  value="5">5</option>
      <option  value="6">6</option>
      <option  value="7">7</option>
      <option  value="8">8</option>
      <option  value="9">9</option>
      <option value="10">10</option>
  </select></p>
  <input name="submitNumOfPictures" type="submit" />
</form>

代码.php

<?php
$times = $_POST['numOfPictures'];

echo $times;

?>
于 2013-08-26T16:35:15.840 回答
0

有多种管理方法,具体取决于您的最终目标。

您可以只使用单独的文件,当用户提交表单时,它会转到下一页,即。firstform.php -> 提交到 -> secondform.php,依此类推。这样,如果您检查他们的输入而不是您喜欢的输入,您可以将它们发送回上一页/表单,并带有一些错误消息以更正他们的选择。

您可以像现在一样使用 GET 或 POST

您可以使用一个页面/文件(例如 forms.php)并使用 PHP 来确定用户处于哪个阶段。示例 - 假设您让用户输入他们想要的图片数量,然后询问他们的详细信息(可能不是您需要的,但您了解流程的想法)

//FORM 1 - get number of pictures
if ($_GET['whichform'] == '')
  {
    echo '<form id="createNewGallery" name="newgallery" method="GET"
           action="'.$_SERVER['PHP_SELF'].'"">';
    echo '<input type="hidden" name="whichform" value="form1" />';
    echo '<input name="submitNumOfPictures" type="submit" />';
  }

//FORM 2 - number of pictures submitted so ask for their details
elseif ($_GET['whichform'] == 'form1')
  {
    echo '<form id="GetUserDetails" name="userdetails" method="GET"
           action="'.$_SERVER['PHP_SELF'].'"">';
    echo '<input type="hidden" name="whichform" value="form2" />';
    echo '<input name="userdetails" type="submit" />';
  }

这将让您从 FORM1 开始,一旦提交,如果是 FORM1,GET 信息将返回 true,因此它将显示 FORM 2,以此类推,对于 FORM 3、4、5 等,在某些方面这是一种粗略的方式,并且需要调整(即测试提交的数据是否符合您的预期等),但它让您了解如何在一个页面上管理多个表单。

于 2013-08-26T16:43:25.437 回答