2011-02-28 44 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”); // 替换为您正在使用的实际内容类型和字符集。

您的数据库中的数据必须相应地从指定了正确编码的连接进行存储,否则数据库将执行到数据库或从数据库的不正确转换。