2011-02-28 45 views
1

我試圖在窗體中創建兩個下拉列表。我從MySQL數據庫生成了第一個下拉列表。當我從第一個下拉列表中選擇一個選項時,我必須從MySQL數據庫的第一個下拉列表中選擇第二個下拉列表選項。我使用的代碼從這個鏈接(AJAX)AJAX中的編碼問題

​​3210

我的問題是由JavaScript調用的頁面不能被編碼這樣做。除此之外,我正在使用阿拉伯語,所以第二個下拉菜單的結果是無意義的形狀。

我曾嘗試不同的方法來解決這個問題喜歡用頭(..),AJAX.get(..) 但沒有一個工作:(

我怎樣才能解決這個問題?

在此先感謝! 問候, Manalkk

+2

http://w3fools.com – 2011-02-28 20:37:24

+0

我有同樣的問題,請告訴我,如果你得到一個很好的解決方案。檢查此問題:http://stackoverflow.com/questions/8238548/how-to-do-the-following-work-scenario-using-php-and-ajax – TopDeveloper 2011-12-05 12:57:33

回答

0

在後端嘗試使用函數utf8_encode()

0

一種方式是通過只編碼的消息cliend和服務器之間交換。如果兩個請求和響應包含特殊字符,那麼你可以這樣做:

  • 編碼Ajax請求
  • 解碼的要求,形成反應和發送對客戶端
  • 解碼響應

我以前經常對其進行編碼使用base64編碼來避免字符集問題,但您可以使用其他任何東西。

0

嘗試設置您的數據庫連接;

mysql_query('SET NAMES "utf8"'); 
0

瀏覽器根據您在http標題中指定的字符集解釋它。這就要求你發送的實際輸出是在該編碼之後。

隨着您的設置必須滿足以下條件:

您必須取一個與正確的編碼規定(SET名稱「編碼」)的連接從MySQL中的所有數據,默認是LATIN1/ISO-8859 -1

PHP內部也只能與latin1一起工作,但任何動態數據都應該沒問題,除非你不做很多字符串操作,那麼你可能會遇到問題。

如果您的php頁面中的任何內容是靜態的,您必須將php頁面保存在相應的字符集(例如utf8)中。

PHP頁面必須在標頭中指定的內容類型:

標題( 「內容類型:文本/ HTML;字符集= UTF8」); // 替換爲您正在使用的實際內容類型和字符集。

您的數據庫中的數據必須相應地從指定了正確編碼的連接進行存儲,否則數據庫將執行到數據庫或從數據庫的不正確轉換。