У меня есть простая форма, которая имеет следующие элементы
<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»
пожалуйста посоветуй
Вам нужно использовать 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>
<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>