2012-09-19 135 views
0

我有這個腳本在下拉列表中顯示年,月和日。PHP在下拉列表中獲取選定的值

我的問題是:如何獲得格式爲d-m-y的選定值?

比方說,如果我將有一個按鈕來獲取當前選定的值並顯示在文本框中。我會怎麼做呢?

任何想法非常感謝。謝謝。

<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> 
+0

回聲$ CURRENTDAY;並告知值 – Gautam3164

+0

您的回覆您好感謝,讓如果用戶改變該值的說。我怎樣才能把代碼上的按鈕來顯示它的選定值?再次感謝。 – user1682305

回答

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> 
+0

謝謝你afshin,這是我想要的。輝煌!!!布拉沃! – user1682305

0
<textarea> 

<?php 

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

?> 
</textarea> 

這將顯示在您的textarea的

+0

感謝您的回覆,但當日期值發生變化時,我將如何獲取其更新內容? – user1682305

+0

這取決於你想如何使用日期。 如果你想讓PHP使用它 - 那麼你將需要做什麼'Vlad Teodorescu'說,並將表單元素包含在表單中。如果你只是想把它添加到客戶端的textarea,那麼你可以在'Vlad Teodorescu的建議中使用JavaScript來做到這一點。你在什麼情況下嘗試使用它? – Chris

3

首先請求的格式的日期,讓我糾正你的一對夫婦的錯誤:

  1. 的選擇命名爲工作日應命名爲。這不是強制性的,但是選擇的名稱實際上尊重數據內部的意義是一種很好的做法。

  2. 如果你想將數據提交到服務器,你必須附上像<元素選擇>,<輸入>,< 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. (最有可能)您試圖在頁面上操作而無需將值發送回服務器。例如,每次用戶在select中選擇不同的值時,腳本都會運行並填充文本框:「您已選擇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> 
+0

嗨弗拉德,我想將數據傳輸到服務器。我在想如果我將數據放在文本框上,我可以有一個按鈕來獲取文本框中的數據併發送到服務器。 (我意識到我有一個錯誤的概念)。所以,如果我想要上面的代碼封閉在一個表單上,我怎麼做呢?以及如何發送選定的數據?非常感謝你的幫助。 – user1682305

+0

照afshin建議。如果你想在用戶改變數據時自動刷新數據,只需在每個選擇中加入以下內容: onChange =「document.getElementById(」enclosing_form「)。submit()」 但是,

元素必須有:id =「enclosing_form」爲此工作。 – Vlad

相關問題