嗨,这有点难以言喻,所以我正在尽力解释发生了什么。我有一个表格,我有一个选择框。我不得不填写以下内容。
<?
$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");?>
所以我做到了:
<select name = "province[]" multiple size = "12" <?if ($_SERVER['REQUEST_METHOD'] == 'POST'){if (isset($errorList['province']))
{
echo "class=\"error\"";
}}?>>
<?php foreach($PROVINCES as $key => $value) { ?>
<option value="<?php echo $key ?>"<?= (in_array($key, $_POST['province'] ) )?'selected':'';?>><?php echo $value?></option>
<?php }?>
</select>
现在,下一步是创建一个包含$ _POST中所有值的表 但问题是,因为值是nf,pe,nb等,它会写在表中而不是PrinceEdwardIsland,New Brunswick,Nova Scotia。
echo '<table border="1" style="width:100%">';
foreach($_POST as $name => $out)
{
echo '<tr>';
echo '<td>';
echo '<strong>';
echo strtoupper($name);
echo '</strong>';
echo '</td>';
echo '<td>';
if (is_array($out))
{
count($_POST);
$arrayOutput = implode(", ", $out);
echo $arrayOutput;
}
else if (strlen($out) <= 0)
{
echo "---None supplied---";
}
else
{
echo $out;
}
echo '</td>';
echo '</tr>';
}
echo '</table>';
但是你可以从这里看到,当我们在foreach循环中调用它时,我们有多个来自$ _POST的$ name。
正如你所看到的那样,当我执行is_array($ out)时,我内爆数组并将其拆分为“,”我只需要获取各省的全名,我有一个状态复选框,它只有必须显示复选框中的值。我试图找出如何获得$ PROVINCES的$键来替换$ _POST ['省']中的内爆值
希望我能够很好地解释它,让人们理解。