【问题标题】:Cant get information from one page to another using PHP无法使用 PHP 从一个页面获取信息到另一个页面
【发布时间】:2011-07-12 17:55:10
【问题描述】:

我有两页。一个带有选择框和发送按钮。当用户从选择框中选择他们的选项并单击发送时,它会将他们带到输出他们选择的第二页。

date_change.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />

</head>

<body>
<?php
$day = array(range(1,31));
$month = array(range(1,12));
$year = array(range(2011,2020));
?>
<form action="test.php" method="post">
Day:
<select >
  <?php foreach($day[0]++ as $key => $value) { ?>
    <option value="<?php echo $key ?>" name="day"><?php echo $value ?></option>
  <?php }?>
</select>
<br>
Month:
<select>
  <?php foreach($month[0]++ as $key => $value) { ?>
    <option value="<?php echo $key ?>" name="month"><?php echo $value ?></option>
  <?php }?>
</select>
<br>
Year:
<select>
  <?php foreach($year[0]++ as $key => $value) { ?>
    <option value="<?php echo $key ?>" name="year"><?php echo $value ?></option>
  <?php }?>
</select>
<input type='submit' value='send' name='send' />
</form>


</body>
</html>

一旦用户做出选择并点击发送,它会将他们带到 test.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />

</head>

<body>

Date Selected: <?php echo $_POST["day"];echo $_POST["month"];echo $_POST["year"]; ?>

</body>
</html>

但是,即使它转到 test.php 页面,它也不会显示用户选择的内容。有什么帮助吗?

我哪里错了?

【问题讨论】:

  • 一分钟内五个相同的答案。不错:D
  • @Stephan:是的,太棒了!
  • 你解决了这个问题吗?

标签: php html select post


【解决方案1】:

您应该将name 属性添加到您的&lt;select&gt; 标签而不是您的&lt;option&gt; 标签。

此外,对于 XHTML 有效代码,您应该将 &lt;br&gt; 更改为 &lt;br /&gt;。

将代码更改为:

Day:
<select name="day">
  <?php foreach($day[0]++ as $key => $value) { ?>
    <option value="<?php echo $key; ?>"><?php echo $value; ?></option>
  <?php } ?>
</select>
<br />
Month:
<select name="month">
  <?php foreach($month[0]++ as $key => $value) { ?>
    <option value="<?php echo $key; ?>"><?php echo $value; ?></option>
  <?php } ?>
</select>
<br />
Year:
<select name="year">
  <?php foreach($year[0]++ as $key => $value) { ?>
    <option value="<?php echo $key; ?>"><?php echo $value; ?></option>
  <?php } ?>
</select>

【讨论】:

    【解决方案2】:

    name 属性位于 select,而不是每个单独的 option。

    【讨论】:

      【解决方案3】:

      您需要在&lt;select&gt; 元素上指定name 属性,而不是&lt;option&gt;,如下所示:

      <select name="day">
      

      【讨论】:

        【解决方案4】:

        您的name 属性应该在select 元素上,而不是它们的options。

        【讨论】:

          【解决方案5】:

          您的 &lt;select&gt; 元素需要月/日/年名称属性,而不是它们的子选项:

          <select name="month">
            ...
          </select>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-05-16
            • 2012-11-02
            • 1970-01-01
            • 1970-01-01
            • 2013-02-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多