在数组中找到PHP html Form值


PHP html Form value found in array

嗨,我正在尝试存储表单数组中选择的值。我使用表单值作为索引来查找具有实际单词的数组中的值。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