0

ドロップダウンに年、月、日を表示するこのスクリプトがあります。

私の質問は: 選択した値を dmy の形式で取得するにはどうすればよいですか?

現在選択されている値を取得してテキストボックスに表示するボタンがあるとします。どうすればいいですか?

どんなアイデアでも大歓迎です。ありがとうございました。

<html>
    <body>
<?php
    $months = array(
            'January', 
            'February', 
            'March', 
            'April', 
            'May', 
            'June',
            'July', 
            'August', 
            'September', 
            'October', 
            'November',
            'December'
        );
    $weekday = array(
            'Sunday',
            'Monday',
            'Tuesday',
            'Wednesday',
            'Thursday',
            'Friday',
            'Saturday'
        );
    $days = range(1,31);
    $years = range (2010, 2020);

    $currentDay = date('d');
    $currentMonth = date('F');
    $currentYear = date('Y');

    echo "<select name='weekday'>";
    foreach($days as $valued) {

        if($valued == $currentDay)
        { 
            $default = 'selected="selected"'; 
            echo '<option '.$default.' value="'.$valued.'">'.$valued.'</option>\n';
        } else {
            $default='';
            echo '<option '.$default.' value="'.$valued.'">'.$valued.'</option>\n';
        }
        } 
    echo '</select>&nbsp;';
        echo "<select name='month'>";
        foreach($months as $valuem) {
            if($valuem==$currentMonth)
        { 
            $default1 = 'selected="selected"';
            echo '<option '.$default1.' value="'.$valuem.'">'.$valuem.'</option>\n';
        } else {
            $default1 = '';    
            echo '<option '.$default1.' value="'.$valuem.'">'.$valuem.'</option>\n';
        }

    } 
        echo '</select> &nbsp; ';
        echo "<select name='year'>";

        foreach ($years as $valuey) {

    if($valuey == $currentYear)
    { 
       $default2 = 'selected="selected"';
       echo '<option '.$default2.' value="'.$valuey.'">'.$valuey.'</option>\n';
    } else {
           $default2 = '';
           echo '<option '.$default2.' value="'.$valuey.'">'.$valuey.'</option>\n';
    }

        }  
        echo '</select> &nbsp; ';
?>


</body>
</html>
4

3 に答える 3

3

まず、いくつかの間違いを訂正させてください。

  1. weekdayという名前の selectは、 dayという名前にする必要があります。これは必須ではありませんが、select の名前が内部のデータの意味を実際に尊重することをお勧めします。

  2. サーバーにデータを送信する場合は、<select>、<input>、<textarea> などの要素をフォームで囲む​​必要があります。

<form action="#" method="POST"> [code be here] </form>

すべきです。

あなたが何をしようとしているのか、私にはよくわかりません。しかし、私はそれを2つのことに絞り込みました:

  1. さらに処理するために、値をサーバーに戻そうとしています。「テキストボックスに日付を印刷する」は単なるモックアップのケースだと思います。この場合、$_GET/$_POST 配列を使用します (フォームで使用されるメソッドに応じて、上記を参照してください)。そのため、現在のシナリオを考慮すると、次のようになります。

    $selectedDay = $_POST['weekday'];
    $selectedMonth = $_POST['month'];
    $selectedYear = $_POST['year'];
    

    それから、前に言われたように、あなたは

    <textarea><?php echo $selectedDay."-".$selectedMonth."-".$selectedYear;?></textarea>
    
  2. (ほとんどの場合) サーバーに値を送信せずにページを操作しようとしています。たとえば、ユーザーが選択で別の値を選択するたびに、スクリプトが実行され、テキスト ボックスに "You have selected 23-2-1992" が入力されます。この場合、PHP ではなく Javascript を使用します。

まさにそれを行うコードです(リファクタリング):

<html>
<head>
<script type="text/javascript">
function updateTextBox()
{
    day = document.getElementById("day").value;
    aux = document.getElementById("month");

    month = aux.value;
    //Use the following if you want the month number instead of the month name, e.g. 12-4-2012
    //month = aux.options[aux.selectedIndex].id;

    year = document.getElementById("year").value;

    document.getElementById("textbox").value = day + "-" + month + "-" + year;
}
</script>
<title>Some title here</title>
</head>
<body>

<?php
$months = array ('January', 'February', 'March', 'April', 'May', 'June','July', 'August', 'September', 'October', 'November','December');
$weekday = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
$days = range(1,31);
$years = range (2010, 2020);

$currentDay = date('d');
$currentMonth = date('F');
$currentYear = date('Y');

echo "<select name='day' id='day' onChange='updateTextBox()'>";
foreach($days as $valued) {

    if($valued == $currentDay)
    { 
          $default = 'selected="selected"'; 
            echo '<option '.$default.' value="'.$valued.'">'.$valued.'</option>\n';
    } else {
          $default='';
            echo '<option '.$default.' value="'.$valued.'">'.$valued.'</option>\n';
    }

} 
echo '</select>&nbsp;';


echo "<select name='month' id='month' onChange='updateTextBox()'>";

foreach($months as $array_key=>$valuem) {

    if($valuem==$currentMonth)
    { 
        $default1 = 'selected="selected"';
    } else {
        $default1 = '';
    }
    echo '<option '.$default1.' id="'.($array_key+1).'" value="'.$valuem.'">'.$valuem.'</option>\n';

} echo '</select> &nbsp; ';

echo "<select name='year' id='year' onChange='updateTextBox()'>";

foreach ($years as $valuey) {

        if($valuey == $currentYear)
        { 
            $default2 = 'selected="selected"';
        } else {
            $default2 = '';
        }
        echo '<option '.$default2.' value="'.$valuey.'">'.$valuey.'</option>\n';

}
echo '</select> &nbsp; ';
?>

<textarea id="textbox"></textarea>

</body>
</html>
于 2012-09-19T08:34:45.910 に答える
0
<?php
if(isset($_POST['submit'])){
    $message=$_POST['weekday'].'-'.$_POST['month'].'-'.$_POST['year'];
}
?>
<html>
<body>
<?php
$months = array(
        'January', 
        'February', 
        'March', 
        'April', 
        'May', 
        'June',
        'July', 
        'August', 
        'September', 
        'October', 
        'November',
        'December'
    );
$weekday = array(
        'Sunday',
        'Monday',
        'Tuesday',
        'Wednesday',
        'Thursday',
        'Friday',
        'Saturday'
    );
$days = range(1,31);
$years = range (2010, 2020);

$currentDay = date('d');
$currentMonth = date('F');
$currentYear = date('Y');
echo '<form method="post" action="">';
echo "<select name='weekday'>";
foreach($days as $valued) {

    if($valued == $currentDay)
    { 
        $default = 'selected="selected"'; 
        echo '<option '.$default.' value="'.$valued.'">'.$valued.'</option>\n';
    } else {
        $default='';
        echo '<option '.$default.' value="'.$valued.'">'.$valued.'</option>\n';
    }
    } 
echo '</select>&nbsp;';
    echo "<select name='month'>";
    foreach($months as $valuem) {
        if($valuem==$currentMonth)
    { 
        $default1 = 'selected="selected"';
        echo '<option '.$default1.' value="'.$valuem.'">'.$valuem.'</option>\n';
    } else {
        $default1 = '';    
        echo '<option '.$default1.' value="'.$valuem.'">'.$valuem.'</option>\n';
    }

} 
    echo '</select> &nbsp; ';
    echo "<select name='year'>";

    foreach ($years as $valuey) {

if($valuey == $currentYear)
{ 
   $default2 = 'selected="selected"';
   echo '<option '.$default2.' value="'.$valuey.'">'.$valuey.'</option>\n';
} else {
       $default2 = '';
       echo '<option '.$default2.' value="'.$valuey.'">'.$valuey.'</option>\n';
}

    }  
    echo '</select> &nbsp; ';
    echo '<input type="submit" name="submit" id="submit" value="Get Selected Date">          </input></form>';
?>
<p>You Select:</p>
<input type="text" value="<?php if(isset($message)){echo $message;}  ?>"></input>

</body>
</html>
于 2012-09-19T08:48:40.160 に答える
0
<textarea>

<?php

echo $currentDay."-".$currentMonth."-".$currentYear;

?>
</textarea>

これにより、テキストエリアで要求した形式で日付が表示されます

于 2012-09-19T07:38:51.567 に答える