我正在使用此数组来创建一个选择框。没关系。它为我工作。但是我需要让这个选择框变粘,这意味着我需要HTML表单来记住我是如何填充它的 进行。
我在foreach循环中添加了这段代码。但它不起作用..
// Check for stickyness:
if ( $_POST['how_hear'] == $value){
echo " selected='selected'";
}
这是我的全部代码
$howHear = array( 1 => 'option value 01',
'option value 02',
'option value 03',
'option value 04',
'option value 05',
'option value 06',
'option value 07',
'option value 08'
);
echo "<select name='how_hear'>
<option>--Select an Option--</option>\n";
foreach ( $howHear AS $key => $value) {
echo "<option value='{$key}'";
// Check for stickyness:
if ( $_POST['how_hear'] == $value){
echo " selected='selected'";
}
echo ">$value</option>\n";
}
echo "</select>\n";
希望有人能帮助我。
谢谢
答案 0 :(得分:1)
您需要将$_POST['how_hear']
与键进行比较,而不是值。它是关键(<option>
中的值属性与表单一起提交)。
答案 1 :(得分:1)
您将$_POST['how_hear']
与选择列表的值进行比较,而不是键。尝试:
// Check for stickyness:
if ( $_POST['how_hear'] == $key){
echo " selected='selected'";
}
答案 2 :(得分:1)
请记住,您将“密钥”作为表单中的实际HTML值传递,因此技术上$_POST['how_hear']
包含密钥而不是$值。只需更改if ( $_POST['how_hear'] == $key){
,它应该可以正常工作,假设您的其余代码都没问题......