[英]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> ';
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> ';
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> ';
?>
</body>
</html>
首先,讓我糾正一些錯誤:
選擇命名為工作日應命名為day 。 這不是強制性的,但是對於選擇名稱來說,實際上要尊重內部數據的含義是一種好習慣。
如果要向服務器提交數據,則必須將諸如<select>,<input>,<textarea>之類的元素包含在表單中。
<form action="#" method="POST"> [code be here] </form>
應該做。
我不太了解您要做什么。 但是,我將其縮小為兩件事:
您正在嘗試將值返回給服務器,以進行進一步處理。 我想“在文本框中打印日期”只是一個模擬案例。 在這種情況下,您將使用$ _GET / $ _ POST數組(取決於表單使用的方法,請參見上文)。 因此,考慮到當前情況,您將:
$selectedDay = $_POST['weekday']; $selectedMonth = $_POST['month']; $selectedYear = $_POST['year'];
然后,就像之前所說的,
<textarea><?php echo $selectedDay."-".$selectedMonth."-".$selectedYear;?></textarea>
(很可能)您正在嘗試在頁面上進行操作,而沒有將這些值發送回服務器。 例如,每次用戶在選擇中選擇一個不同的值時,腳本就會運行並用以下文本填充文本框:“您已選擇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> ';
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> ';
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> ';
?>
<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> ';
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> ';
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> ';
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.