2011-07-18 58 views
0

我通過改變頁面界面語言的下拉菜單向自己提交php。 雖然這樣做,我正在更新一個存儲HTML正文的cookie:TAG方向:rtl或ltrPHP cookie讀取/寫入序列

因此,儘管HTML SELECT標籤通過FORM onChage()FUNC調用到JavaScript提交其價值,和JavaScript重新加載PHP頁面,在PHP頁面的頭部有一個INCLUDE爲翻譯PHP頁面,當頁面改寫時的方向將根據語言更新。

那麼,這實際上只讀取了Cookie BODY TAG DIR只是第二次語言改變,因此,身體方向並不總是正確的。

<?php 
header('Content-Type: text/html; charset=UTF-8'); 
include '../dbc.php'; 
mysql_query("SET NAMES 'UTF8'"); 
include './includes/getranslation.php'; 
?> 
<html> 
<head> 
<SCRIPT language=JavaScript> 
function reload(form) { 
var val=form.langselector.options[form.langselector.options.selectedIndex].value; 
SetCookie('lang', '' + val); 
self.location='login.php'; 
} 
</SCRIPT> 

</head> 
<body dir='<?php echo $_COOKIE['langdir']; ?>'> 
    <table width="100%" border="0" cellspacing="0" cellpadding="2" class="main"> 
     <tr> <?php if ($_COOKIE["langdir"] == 'ltr') { 
      $ddlangalignleftTD = 'right'; 
      $ddlandalignrightTD = 'left'; 
      } else { 
      $ddlangalignleftTD = 'left'; 
      $ddlandalignrightTD = 'right'; 
      } 
      ?> 
      <td width="50%" align="<?php echo $ddlangalignleftTD; ?>" valign="center"> 
       <?php echo $headingNamesArr['select_lang']; ?>: 
      </td> 
      <td width="50%" align="<?php echo $ddlandalignrightTD; ?>" valign="center"> 
       <form method="post" name="langselectorfrm" action="login.php"> 
        <select name="langselector" onchange="reload(this.form)"> 
         <?php echo '<option value= ''</option>'; 
         ?> 
        </select> 
       </form> 

我想知道爲什麼它不讀取更新的COOKIE,第二次後,才提交?

希望你能理解....

回答

0

該Cookie只看到第二次加載頁面。因爲在第一次加載時,Cookie 不存在

+0

怎麼回事?與Cookie相關的頁面加載順序是什麼?有沒有在頁面開始加載之前有cookie的工作?畢竟,它的一個文件寫入th硬盤.... Thanx。 – Jadeye

+0

Neal,IC你的信譽是相當高的,所以我會問:我在這裏發佈了另一個問題(仍然在尋找這個網站的支持...),我繼續得到這個消息: 您的問題「Ubuntu服務器靜態路由通過Ubuntu的PC 「被遷移到超級用戶。 這是什麼意思? 另一個問題,如果我可以:我得到每個問題的功勞?回答?什麼?這裏的系統是什麼... 在註冊之前,我發現這個網站是最有用的答案之一。現在我註冊更難以得到答案... :-) JadeYe – Jadeye

+0

@Jadeye - 你可以在http://meta.stackoverflow.com上詢問並查看這些類型的問題。 – Neal