嗨,我正在尝试存储表单数组中选择的值。我使用表单值作为索引来查找具有实际单词的数组中的值。ex"nf"=>纽芬兰
<!-- PROVINCES CHOICE -->
Province (Multiple Select) <font style="color:red;">*</font>
<select name="province[]" multiple = "multiple" style = "background-color:<?php echo $colorProvince; ?>">
<!-- Option select for province -->
<option value="--" disabled="disabled">--Please Select Provinces--</option>
<option value="nf">Newfoundland</option>
<option value="pe">Prince Edward Island</option>
<option value="nb">New Brunswick</option>
<option value="ns">Nova Scotia</option>
<option value="qc">Quebec</option>
<option value="on">Ontario</option>
<option value="mb">Manitoba</option>
<option value="sk">Saskatchewan</option>
<option value="ab">Alberta</option>
<option value="bc">British Columbia</option>
<option value="nt">Northwest Territories</option>
</select>
<?PHP $PROVINCES = array(
"--"=>"---Please Select Provinces---",
"nf"=>"Newfoundland",
"pe"=>"PrinceEdwardIsland",
"nb"=>"New Brunswick",
"ns"=>"Nova Scotia",
"qc"=>"Quebec",
"on"=>"Ontario",
"mb"=>"Manitoba",
"sk"=>"Saskatchewan",
"ab"=>"Alberta",
"bc"=>"British Columbia",
"nt"=>"Northwest Territories");
{
foreach($PROVINCES as $prov => $selectedProvince)
{
$province = $province . $selectedProvince . " , ";
}
echo $province;
?>
我想我只是用province数组和forms数组填错了变量。你能提供的任何帮助和解释都非常好。非常感谢。
目前,您没有在$PROVINCES
中的键中搜索表单中选择的值,因此无法获得所需的结果。
处理表单数据时,需要关联$_POST['province']
(如果是GET
表单,则为$_GET['province']
)中的值,然后使用缩写和完整标题数组进行翻译。但是,由于您有这个缩写和标题列表,您也可以在创建表单时使用它们来填充select元素。
在脚本的早期,声明省份和缩写的数组:
$p_arr = array(
"ab"=>"Alberta",
"bc"=>"British Columbia",
"mb"=>"Manitoba",
"nb"=>"New Brunswick",
"nf"=>"Newfoundland",
"nt"=>"Northwest Territories",
"ns"=>"Nova Scotia",
"on"=>"Ontario",
"pe"=>"Prince Edward Island",
"qc"=>"Quebec",
"sk"=>"Saskatchewan",
);
?>
稍后,在表单创建代码中:
<label for="province_select">Province (multiple select) <em class="rqd">*</em></label>
<select id="province_select" name="province[]" multiple="multiple">
<option value="--" disabled="disabled">--Please Select Provinces--</option>
<?php
# add the options using the keys and values from the abbreviation/province
foreach ($p_arr as $pk => $pv) {
echo
' <option value="' . $pk . '">' . $pv . "</option>'n";
}
?>
在处理表单输入的代码中:
<?php
# this function gets the province name from $p_arr when given an abbreviation
function get_province( $p ) {
if (isset($GLOBALS['p_arr'][$p])) {
return $GLOBALS['p_arr'][$p];
}
}
if ($_POST) { // or $_GET
# if 'province' is set in the form
if ($_POST['province']) {
# create $prov_str by applying the function "get_province" to all the
# values in $_POST['province'], and join them with ", "
$prov_str = implode(", ", array_map( "get_province", $_POST['province'] ) );
echo "$prov_str'n";
}
}
样本输入:bc, nf, ns, qc
输出:British Columbia, Newfoundland, Nova Scotia, Quebec