PHP下拉菜单

时间:2014-10-14 17:30:58

标签: php selected

我希望使用PHP从3个下拉菜单(年,月和日)中获取所选项目的值, 我尝试了这个,但没有工作

<p><font size="6"> <b>TP3</b></font></p>
     <p>
     </p>
     <table align="center" width="800" border="1" cellspacing="2" cellpadding="2">
     <tr>
     <td><p><?php echo "Date : " . date("Y/m/d") . "<br>";?></p><br/>
<?php $date = new DateTime();
$day = $date->format('d');
$month = $date->format('m');
$year = $date->format('Y'); ?>
<select name="day">
    <option value="day" selected="selected">Day</option>
    <?php 
    for($i=1; $i<=31; $i++)
        {
            printf('<option value="%d" %s>%d</option>', $i, $i == $day ? 'selected="selected"' : '', $i);
        }
?> 
</select>
<br>
<br>
<br>
<select name="month">
    <option value="month" selected="selected">Month</option>
    <?php 
    for($i=1; $i<=12; $i++)
        {
            echo "<option value=".$i.">".$i."</option>";
        }
?> 
</select>
<br>
<br>
<br>
<select name="years">
    <option value="years" selected="selected">Years</option>
    <?php 
    for($i=2000; $i<=2020; $i++)
        {
            echo "<option value=".$i.">".$i."</option>";
        }
?> 
</select> 
<input type="submit" name="submit" value="Verify Date">

3 个答案:

答案 0 :(得分:0)

首先,您缺少<form></form>个标签( 这非常重要 )。

  • 然后是一个方法(GET或POST),但我们将使用POST:method="post"
    如果省略方法,则<form>默认为GET,快速FYI

  • 然后有动作(请参阅下面的下面的检查)。该操作确定您是否希望执行并在同一文件action=""中显示从表单中提取的数据 或使用外部文件action="handler.php"

下面:

<p><font size="6"> <b>TP3</b></font></p>
     <p>
     </p>
     <table align="center" width="800" border="1" cellspacing="2" cellpadding="2">
     <tr>
     <td><p><?php echo "Date : " . date("Y/m/d") . "<br>";?></p><br/>
<?php $date = new DateTime();
$day = $date->format('d');
$month = $date->format('m');
$year = $date->format('Y'); ?>

<form action="" method="post">
<select name="day">
    <option value="day" selected="selected">Day</option>
    <?php 
    for($i=1; $i<=31; $i++)
        {
            printf('<option value="%d" %s>%d</option>', $i, $i == $day ? 'selected="selected"' : '', $i);
        }
?> 
</select>
<br>
<br>
<br>
<select name="month">
    <option value="month" selected="selected">Month</option>
    <?php 
    for($i=1; $i<=12; $i++)
        {
            echo "<option value=".$i.">".$i."</option>";
        }
?> 
</select>
<br>
<br>
<br>
<select name="years">
    <option value="years" selected="selected">Years</option>
    <?php 
    for($i=2000; $i<=2020; $i++)
        {
            echo "<option value=".$i.">".$i."</option>";
        }
?> 
</select> 
<input type="submit" name="submit" value="Verify Date">

</form>

另外,我不知道您希望使用哪种类型的行动,由您决定。

因此将action=""更改为您要使用的文件处理程序。

I.e。:action="handler.php"并从那里做你的魔法。

handler.php的示例:并将生成例如Day: 14 Month: 10 Year: 2014

<?php

if(isset($_POST['submit'])){

$day  = $_POST['day'];

$month = $_POST['month'];

$year = $_POST['years'];

echo "Day: " . $day . " ";

echo "Month: " . $month . " ";

echo "Year: " . $year;

}

?>

您可以将上述内容放在自己的文件中,或将其放在下面:

// rest of code from your form/code

<input type="submit" name="submit" value="Verify Date">

</form>

<?php

if(isset($_POST['submit'])){

$day  = $_POST['day'];

// rest of code

我相信这已经回答了你的问题。

  • Mark it已接受正确结束问题:

enter image description here

答案 1 :(得分:0)

首先,您需要添加<form action="action.php" method="post"></form>标记,以便浏览器知道将数据发布到的位置。在你的&#34; action.php&#34;文件,您可以检索用户使用$_POST数组提交表单时设置控件的值:

$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];

编辑:如果您希望使用GET方法而不是POST,则只需将$_POST替换为$_GET

答案 2 :(得分:0)

   Try it


 <p><font size="6"> <b>TP3</b></font></p>
         <p>
         </p>
         <table align="center" width="800" border="1" cellspacing="2" cellpadding="2">
         <tr>
         <td><p><?php echo "Date : " . date("Y/m/d") . "<br>";?></p><br/>
    <?php $date = new DateTime();
    $day = $date->format('d');
    $month = $date->format('m');
    $year = $date->format('Y'); ?>
    <select name="day">
        <option value="day" selected="selected">Day</option>
        <?php 
        $i=1;
        for($i=1; $i<=31; $i++)
            {
                printf('<option value="%d" %s>%d</option>', $i, $i == $day ? 'selected="selected"' : '', $i);
            }
    ?> 
    </select>
    <br>
    <br>
    <br>
    <select name="month">
        <option value="month" selected="selected">Month</option>
        <?php 
        $i=1;
        for($i=1; $i<=12; $i++)
            {
                echo "<option value=".$i.">".$i."</option>";
            }
    ?> 
    </select>
    <br>
    <br>
    <br>
    <select name="years">
        <option value="years" selected="selected">Years</option>
        <?php 
        $i=2000;
        for($i=2000; $i<=2020; $i++)
            {
                echo "<option value=".$i.">".$i."</option>";
            }
    ?> 
    </select> 
    <input type="submit" name="submit" value="Verify Date">