2012-11-09 52 views
0

我已经下拉弹出窗口,用户可以选择他们的国家。我使用隐藏字段来提交与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

您正在寻找'session'或'cookie' – Abhilash

+1

使用cookies或会话来存储数据(选择) – nu6A

+0

哦@Abhilash .. :) – nu6A

回答

0

你可以做一个会议变量,使值跨网页。

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

Sessions

编辑:

当你正在使用不同的目的会话,设置一个cookie,独立,受自己的到期。使用setcookie

+0

在20分钟内显示的会话有问题:S –

+0

@CuriousProgrammer它不会自动失效,除非你做到了如此明确。 –

+0

是的,我知道,我需要20分钟内会话过期 –

0

要将跨请求的表单值保存为隐藏字段,只需在呈现时将其回显到表单中即可。

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

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

+0

试过没有工作,因为当我浏览这个网站'$ _ POST [“FNAME”]在其他页面'变空。与会议的问题,它expiers 20分钟,cookie的问题不imideately保存,当我点击提交按钮内...:S –

0
在操作页面

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

形式

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

echo会话值(如果设置),以隐藏字段太

+0

问题的会议,这20分钟内expiers,与cookie的问题不imideately时节省我点击提交按钮...:S –

+0

http:// stackoverflow。com/questions/5002044/set-session-expiry-time – nu6A

+0

我无法更改会话时间,因为我需要它在20分钟内过期以用于其他目的。 –