簡體   English   中英

PHP在下拉列表中獲取選定的值

[英]PHP Get selected Values on a drop down list

我有這個腳本,可以在下拉菜單中顯示年,月和日。

我的問題是:如何獲取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>

首先,讓我糾正一些錯誤:

  1. 選擇命名為工作日應命名為day 這不是強制性的,但是對於選擇名稱來說,實際上要尊重內部數據的含義是一種好習慣。

  2. 如果要向服務器提交數據,則必須將諸如<select>,<input>,<textarea>之類的元素包含在表單中。

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

應該做。

我不太了解您要做什么。 但是,我將其縮小為兩件事:

  1. 您正在嘗試將值返回給服務器,以進行進一步處理。 我想“在文本框中打印日期”只是一個模擬案例。 在這種情況下,您將使用$ _GET / $ _ POST數組(取決於表單使用的方法,請參見上文)。 因此,考慮到當前情況,您將:

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

    然后,就像之前所說的,

     <textarea><?php echo $selectedDay."-".$selectedMonth."-".$selectedYear;?></textarea> 
  2. (很可能)您正在嘗試在頁面上進行操作,而沒有將這些值發送回服務器。 例如,每次用戶在選擇中選擇一個不同的值時,腳本就會運行並用以下文本填充文本框:“您已選擇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>
<textarea>

<?php

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

?>
</textarea>

這將以您在文本區域中請求的格式顯示日期

<?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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM