选择从数组生成时粘贴的框

时间:2013-02-05 02:33:54

标签: php html

我正在使用此数组来创建一个选择框。没关系。它为我工作。但是我需要让这个选择框变粘,这意味着我需要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";
希望有人能帮助我。 谢谢

3 个答案:

答案 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){,它应该可以正常工作,假设您的其余代码都没问题......