希望标题能够真正描述这个问题。
通过3个步骤获得表单,用户可以从步骤2转到步骤1,以更改详细信息。
到目前为止,除了多个选择下拉列表外,每个输入都完全重新填充。
我一直在尝试使用数组的switch()
内的foreach()
,但它似乎在第一种情况下匹配时停止。我已将break;
更改为continue;
,但存在相同的行为。
数组从2开始合并,$key
为项目编号,$value
为项目值。
项$value
每foreach()
完美输出一次。
有人有任何想法吗?
foreach($combined as $key => $value) {
//firstload is only valid on first load
if($value != firstload) {
switch($value){
case "1":
$selected0 = "selected=\"selected\"";
break;
case "5.00":
$selected1 = "selected=\"selected\"";
break;
case "10.00":
$selected2 = "selected=\"selected\"";
break;
case "45.00":
$selected3 = "selected=\"selected\"";
break;
case "85.00":
$selected4 = "selected=\"selected\"";
break;
}
然后HTML选择选项<option value="5.00" $selected1">
等。
当switch与case匹配时,它会匹配每个foreach的情况。
答案 0 :(得分:1)
我不确定这是否可以帮助你,没有代码可以解决 - 但这是一个你可以根据自己的需要重写的想法。
<select name="mySelect" multiple="multiple">
<?php
// Could come from sessions or POST data
$selected_array = array("1", "10.00", "85.00");
// Could come from database or something else
$multiple_select_values = array("1", "5.00", "10.00", "45.00", "85.00");
foreach($multiple_select_values as $value) {
$selected = "";
if(in_array($value, $selected_array))
$selected = " selected=\"selected\"";
echo '<option value="'. $value . '"' . $selected. '>' . $value .'</option>';
}
?>
</select>