在php中使用foreach循环通过$ _post获取选项值

时间:2014-10-18 04:16:23

标签: php post foreach option

我有一个简单的表单,其中包含以下元素

<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;

我面临的问题是我想要选项&#34;&#34;值&#34;要检索,我得到选项的名称。

例如:如果我选择&#34; B区&#34;从选项列表中我想要值&#34; 2&#34;相反,我得到了名字&#34; B区&#34;

请咨询

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>