从两个相应的下拉列表中填充所选月份和年份的日期和日期

时间:2017-04-10 07:37:55

标签: javascript php

我需要按开始按钮显示所选月份和日期的日期。

我已尝试REQUESTGET从网址onchange()获取,但我肯定做错了。我知道当前的代码是静态的,只显示2003年第9个月的值。

<table>
<tr>
    <form id="frmA" class="form-inline" role="form" >
        <td align="right">
            <select id="month" name="month" class="form-control" required="required">
                <option value="">Select Month...</option>
                <option value='1'>January</option>
                <option value='2'>February</option>
                <option value='3'>March</option>
                <option value='4'>April</option>
                <option value='5'>May</option>
                <option value='6'>June</option>
                <option value='7'>July</option>
                <option value='8'>August</option>
                <option value='9'>September</option>
                <option value='10'>October</option>
                <option value='11'>November</option>
                <option value='12'>December</option>
            </select>
        </td>
        <td>  
            <select id="year" name="year" class="form-control" required="required">
            <?php 
                foreach (range(date('Y'), $earliest_year) as $x) {
                print '<option value="'.$x.'"'.($x === $already_selected_value ? ' 
                selected="selected"' : '').'>'.$x.'</option>';}
                ?>
            </select>
        </td>
        <td>
            <input type="submit" value="Go!" />
        </td>
    </form>
</tr>
<table>
    <tbody>
        <?php
            $date = '2003-09-01';
            $end = '2003-09-' . date('t', strtotime($date)); 
            i=1;
            while(strtotime($date) <= strtotime($end) && $i <= strtotime($end))  {
                $day_num = date("d/m/Y", strtotime($date));
                $day_name = date('l', strtotime($date));
                $date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
                echo "<tr><td>$day_num - $day_name</td></tr>";
                i++;
            }
            ?>
    </tbody>
</table>

2 个答案:

答案 0 :(得分:0)

你的代码中缺少一些东西:1 /方法+'形式'中的动作2 /在使用它们之前分配$ vars - &gt; $ date ='2003-09-01';

 <table>
<tbody>
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

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

$date = "$year-$month-01";
$end = "$year-$month-" . date('t', strtotime($date)); 

echo"[ $month / $year / $date / $end ]";
/* code below will throw an error 
$i=1;
while( (strtotime($date) <= strtotime($end)) && ($i <= strtotime($end))      )  {
$day_num = date("d/m/Y", strtotime($date));
$day_name = date('l', strtotime($date));
$date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
echo "<tr><td>$day_num - $day_name</td></tr>";
i++;
}
*/
?>
</tbody>
</table>

<table>
<tr>
<form id="frmA" class="form-inline" role="form" method="post" action="mypage.php" >
<td align="right">

<select id="month" name="month" class="form-control" required="required">
                    <option value="">Select Month...</option>
                    <option value='1'>January</option>
                    <option value='2'>February</option>
                    <option value='3'>March</option>
                    <option value='4'>April</option>
                    <option value='5'>May</option>
                    <option value='6'>June</option>
                    <option value='7'>July</option>
                    <option value='8'>August</option>
                    <option value='9'>September</option>
                    <option value='10'>October</option>
                    <option value='11'>November</option>
                    <option value='12'>December</option>
  </select>
</td>

<td>  
<select id="year" name="year" class="form-control" required="required">
<?php
foreach (range(date('Y'), $earliest_year) as $x) {
print '<option value="'.$x.'"'.($x === $already_selected_value ? ' 
selected="selected"' : '').'>'.$x.'</option>';}
?>
</select>
</td>

<td>
<input type="submit" value="Go!" />
</td>
</form>
</tr></tbody>
</table>

答案 1 :(得分:0)

<table>
<tbody>
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

$month = $_REQUEST['month'];
$year = $_REQUEST['year'];

$date = "$year-$month-01";
$end = "$year-$month-" . date('t', strtotime($date)); 

$i=1;
while( (strtotime($date) <= strtotime($end)) && ($i <= strtotime($end))  )  {
$day_num = date("d/m/Y", strtotime($date));
$day_name = date('l', strtotime($date));
$date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
echo "<tr><td>$day_num - $day_name</td></tr>";
$i++; 
}
?>
</tbody>
</table>
<form id="frmA" class="form-inline" role="form" method="post" action="mypage.php" >
<table>
<tr>
<td align="right">

<select id="month" name="month" class="form-control" required="required">
                    <option value="">Select Month...</option>
                    <option value='1'>January</option>
                    <option value='2'>February</option>
                    <option value='3'>March</option>
                    <option value='4'>April</option>
                    <option value='5'>May</option>
                    <option value='6'>June</option>
                    <option value='7'>July</option>
                    <option value='8'>August</option>
                    <option value='9'>September</option>
                    <option value='10'>October</option>
                    <option value='11'>November</option>
                    <option value='12'>December</option>
</select>
</td>

<td>  
<select id="year" name="year" class="form-control" required="required">
<?php
foreach (range(date('Y'), $earliest_year) as $x) {
print '<option value="'.$x.'"'.($x === $already_selected_value ?'selected="selected"' : '').'>'.$x.'</option>';}
?>
</select>
</td>

<td>
<input type="submit" value="Go!" />
</td>

</tr>
</table>
</form>