2014-10-18 114 views
0

我有一個簡單的形式,它具有以下元素獲得期權價值使用foreach循環在PHP

<form id="form1" name="form1" method="post" action="add_cust_prces.php"> 
    <input type="text" name="Code" id="Code" /> 
    <input type="text" name="Name" id="Name" /> 
    <select name="district"> 
    <option values=1>District A</option> 
    <option values=2>District B</option> 
    <option values=3>District C</option> 
    <option values=4>District D</option> 
    <option values=5>District E</option> 
    </select> 
</form> 

現在,我使用下面的腳本來獲取所有被用戶提交的值(在$ _POST的幫助下)並構建一個字符串。

$postdata = $_POST; 

$sqlbld = "INSERT INTO `customer` (`cst_id`, `cst_code`, `cst_name`, `cst_dist`, `cst_flag`) VALUES (NULL, "; 
foreach ($postdata as $key => $value) { 
    if($key <> 'button'){  
     if(!is_numeric($value)){ 
      $sqlbld .= "'$value', "; 
     } else { 
      $sqlbld .= "$value, ";   
     } 
    }  
} 

$sqlbld .= "'yes');"; 
echo $sqlbld; 

我面對的問題是我想要選項的「值」被檢索,而我得到的選項的名稱。

例如:如果我從選項列表中選擇了「B區」我想要的值「2」,而不是我得到的名稱爲「B區」

請指教

+1

它不應該是'期權價值='?你有額外的s。 – andrewsi 2014-10-18 04:17:42

回答

0

您需要使用value(在你的選項標籤不values)(否則瀏覽器會發送文本):

<form id="form1" name="form1" method="post" action="add_cust_prces.php"> 
    <input type="text" name="Code" id="Code" /> 
    <input type="text" name="Name" id="Name" /> 
    <select name="district"> 
    <option value="1">District A</option> 
    <option value="2">District B</option> 
    <option value="3">District C</option> 
    <option value="4">District D</option> 
    <option value="5">District E</option> 
    </select> 
</form> 
+0

一個字符造成巨大的差異。謝謝。 :) – Prem 2014-10-18 04:49:18

+0

不客氣。 – webbiedave 2014-10-18 04:49:34

0
<form id="form1" name="form1" method="post" action="add_cust_prces.php"> 

<input type="text" name="Code" id="Code" /> 

<option value="1">District A</option> 

<option value="2">District B</option> 

<option value="3">District C</option> 

<option value="4">District D</option> 

<option value="5">District E</option>