0

我正在使用这个数组来制作一个选择框。没关系。它为我工作。但是我需要使这个选择框具有粘性,这意味着我需要 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";

希望有人能帮助我。谢谢

4

3 回答 3

1

您需要比较$_POST['how_hear']key 而不是 value。<option>它是键(与表单一起提交的值属性)。

于 2013-02-05T02:36:10.097 回答
1

您正在将您$_POST['how_hear']的值与选择列表的值进行比较,而不是键。尝试:

// Check for stickyness:
if ( $_POST['how_hear'] == $key){
    echo " selected='selected'";
}
于 2013-02-05T02:36:48.597 回答
1

请记住,您将“键”作为表单中的实际 HTML 值传递,因此技术上$_POST['how_hear']包含键而不是 $ 值。只需更改if ( $_POST['how_hear'] == $key){它应该可以工作,假设您的其余代码没问题......

于 2013-02-05T02:38:08.130 回答