2014-01-29 74 views
1

我正在製作HTML表單。我希望結果出現在另一頁上的PHP腳本中。HTML表單提交到PHP腳本與關聯數組

這裏是我的形式:

echo '<form name="form1" action="page2.php" method="post">'; 
echo '<SELECT name="choice">'; 
foreach ($array as $key => $value) 
echo '<OPTION VALUE="'.$value.'" name="'.$value.'">'.$key.'</OPTION>'; 

現在,我則page2.php我想要檢索使用「郵報」的方法既$鍵和$值,我嘗試了這些解決方案3逐個它失敗:

echo $_POST["choice"]; //nothing 
echo $_POST[$key];  //nothing 
echo $_POST[$value]; //nothing 

什麼問題?

回答

3

你可以在你的選擇是這樣的價值有一個分隔符:

echo '<form name="form1" action="page2.php" method="post">'; 
echo '<SELECT name="choice">'; 
foreach ($array as $key => $value) 
echo '<OPTION VALUE="'.$key.'|'.$value.'" >'.$value.'</OPTION>'; 

,然後在後,檢索這樣說:

$expldedArray = explode("|", $_POST["choice"]); 
$key = $expldedArray[0]; 
$value = $expldedArray[1]; 
+0

你做到了,好戲! –

+0

^_ ^我的榮幸 – aiiwa

3

您不需要給選擇字段中的選項命名。只要給一個名稱,選擇標籤象下面這樣:

echo '<form name="form1" action="page2.php" method="post">'; 
echo '<SELECT name="choice">'; 
foreach ($array as $key => $value) 
     echo '<OPTION VALUE="'.$value.'">'.$key.'</OPTION>'; 

,然後在你的PHP代碼中選擇一個值,並提交表格後:

echo $_POST['choice'] 

會給你選擇的值。

+0

謝謝你! –

2
foreach($_POST as $key => $value) { 

    echo ucfirst($key); echo " = "; 
    if(is_array($value)) 
      echo implode(",", $value); 
    else 
      echo $value; 

    echo '<br />'; 
} 

其中ucfirst()將首字母大寫。 implode()將膠液數組元素與給定的字符串