0

我在弹出窗口中有下拉菜单,用户可以在其中选择他们的国家。我正在使用隐藏字段通过 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;
}

谢谢您的帮助。

4

3 回答 3

0

您可以创建一个会话变量,以使该值在页面之间保持不变。

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

会话

编辑:

当您将 Sessions 用于不同目的时,请单独设置一个 cookie,但要以它自己的 expiry为准。使用setcookie.

于 2012-11-09T09:16:40.767 回答
0

在行动页面

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

通知

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

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

于 2012-11-09T09:22:32.280 回答
0

将请求中的表单值保留为隐藏字段仅意味着在呈现表单时将其回显到表单中。

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

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

于 2012-11-09T09:19:48.657 回答