2015-09-27 27 views
0

我是一名PHP初學者。當我練習$_POST時,我想發佈一個真實值,如日期1而不是鍵0.例如,當我選擇日期1並提交時,它將打印「您出生的日期1」而不是「您的出生日期0」由於數組鍵。我試過array_flip但失敗了。任何人都不能幫助我嗎?如何發佈數組中的真值而不是PHP中的密鑰?

<html> 
<body> 
    <?php 
     if(isset($_POST['submit'])){ 
      $date = $_POST['Ngay']; 
      $month = $_POST['Thang']; 
      $year = $_POST['Nam']; 
      $gender = $_POST['Gender']; 
      $hidden = $_POST['hidden']; 

      echo "You born $date, $month, $year. Gender is $gender"; 
     } 
    ?> 
    <?php 
     function build_form($value){ 
      foreach ($value as $k => $v){ 
       echo "<option value = '{$k}'>".$v."</option>"; 
      } 
     } 
    ?> 
    <?php 
     $month = array(
      1 => "Thang 1", 
      2 => "Thang 2", 
      3 => "Thang 3", 
      4 => "Thang 4", 
      5 => "Thang 5", 
      6 => "Thang 6", 
      7 => "Thang 7", 
      8 => "Thang 8", 
      9 => "Thang 9", 
      10 => "Thang 10", 
      11 => "Thang 11", 
      12 => "Thang 12", 
      ); 
     $date = range(1,31) ; 
     $year = range(1990,2000); 
    ?> 

    <form action="" method="post"> 
     <select name = "Ngay"> 
      <option>Choose date</option> 
      <?php 
       build_form($date); 
      ?> 
     </select> 

     <select name = "Thang"> 
      <option>Choose month</option> 
      <?php 
      build_form($month); 
      ?> 
     </select> 

     <select name = "Nam"> 
      <option>Choose year</option> 
      <?php 
       build_form($year); 
      ?> 
     </select> 

     <select name = "Gender"> 
      <option>Gender</option> 
      <option value="male">Male</option> 
      <option value="female">Female</option> 
     </select> 

     <input type="submit" name="submit" value="Submit"> 
     <input type="hidden" name="hidden" value="id=1"> 

    </form> 
</body> 
</html> 

回答

1

原始範圍()數組有一個數字索引。這個數字索引後面是變量$ k,當你建立你的表單。所以,要麼改變數組,要麼改變你創建窗體的方式。

1)你可以嘗試array_combine()只得到雙方的數組的值,看起來有點嚇人,就像這樣:

$date = array_combine(array_values(range(1,31)), range(1,31)); 
    $year = array_combine(array_values(range(1990,2000)), range(1990,2000)); 

2)你也可以改變build_form功能和使用echo "<option value = '{$v}'>".$v."</option>"; - 有兩次值。

echo "<select>"; 
$range = range(1,12); 
foreach ($range as $value) { 
    echo "<option value='$value'>$value</option>"; 
} 
echo "</select>"; 
+1

感謝您的支持:) –

相關問題