需要隐藏的输入值以保持形式php

时间:2012-11-09 09:13:10

标签: php

我在弹出窗口中下拉,用户可以选择他们的国家/地区。我使用隐藏字段用php提交选项,当我点击“提交”按钮时,我得到了被选中的国家。有关国家/地区的信息显示在标题中,因此它应该在每个页面上,但是当我开始在页面之间浏览时,国家值会消失。我怎样才能将它保存在每一页上?

<div class="field">
            <div class="input-box">
                <?php $_countries = Mage::getResourceModel('directory/country_collection')->loadData()->toOptionArray(false); ?>
                <?php if (count($_countries) > 0): ?>
                    <select name="country" id="country" onchange="print(this.value)">
                        <option value=""> </option>
                        <?php foreach($_countries as $_country): ?>
                            <?php if(!in_array($_country['value'], $arrNO)):?>
                                <option value="<?php echo $_country['value'] ?>" >
                                    <?php echo $_country['label'] ?>
                                </option>
                            <?php endif;?>
                        <?php endforeach; ?>
                    </select>
                <?php endif; ?>
            </div>
            <form action="" method="post">
            <input id="choice" type="hidden" name="fname" value=""/>
            <input type="submit" value="OK"/>
            </form>
            <div id="usWarning"><p><span class="red">NOTE</span>: If you live in <span class="red">Arizona</span>, <span class="red">Iowa</span>, <span class="red">Maryland</span>, <span class="red">Oklahoma</span>, <span class="red">South Dakota</span>, <span class="red">Vermont</span>, <span class="red">Washington</span> or <span class="red">Wisconsin</span>, we are unfortunately not allowed to sell tobacco to you. Its forbidden with online sales of tobacco in these states.</p></div>
        </div>

在JS的帮助下分配的隐藏输入字段的“值”:

function print(value) {
    document.getElementById("choice").value=value;
}

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

您可以创建会话变量,以使值在页面中保持不变。

$_SESSION['countryname'] = "countryname";

<强> Sessions

修改:

当您将Sessions用于其他目的时,请分别设置一个Cookie,但需要自己的到期。使用setcookie

答案 1 :(得分:0)

要在请求之间保留表单值,因为隐藏字段只是意味着在呈现它时将其回显到表单中。

<input id="choice" type="hidden" name="fname" value="<?php echo htmlspecialchars ($_POST ['fname']); ?>" />

或者,您可以使用sessionscookies将值传播到其他页面。

答案 2 :(得分:0)

在行动页面

$_SESSION['country']    =   $_POST['country']

表格

<option value="<?php echo $_country['value'] ?>" <?php if(isset($_SESSION['country']) && $_SESSION['country']===$_country['value']) echo "selected"; ?>>

echo会话值(如果设置)也是隐藏字段