PHP+AJAX传递数据方法一例。并带中文乱码解决方法

===============
<script language="javascript">

function InitAjax()
{
var ajax=false;
try {
   ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
   try {
    ajax = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (E) {
    ajax = false;
   }
}
if (!ajax && typeof XMLHttpRequest!='undefined') {
   ajax = new XMLHttpRequest();
}
return ajax;
}

function getNews(newsID,url,calssid)
{
//如果没有把参数newsID传进来
if (typeof(newsID) == 'undefined')
{
   return false;
}
//需要进行Ajax的URL地址
var url = url+ newsID;

//获取新闻显示层的位置
var show = document.getElementById(calssid);

//实例化Ajax对象
var ajax = InitAjax();

//使用Get方式进行请求
ajax.open("GET", url, true);

//获取执行状态
ajax.onreadystatechange = function() {
   //如果执行是状态正常,那么就把返回的内容赋值给上面指定的层
   if (ajax.readyState == 4 && ajax.status == 200) {
    show.innerHTML = ajax.responseText;
   }
}
//发送空
ajax.send(null);
}
</script>
<body onload='getNews(2,"indextest1.php?id=","show_news")';>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">
   <tr>
     <td width="30%" height="72" bgcolor="#FFFFFF"> </td>
     <td width="17%" bgcolor="#FFFFFF"><a href="#" onclick='getNews(3,"indextest1.php?id=","show_news")'>1</td>
     <td width="18%" bgcolor="#FFFFFF"><a href="#" onclick='getNews(5,"indextest1.php?id=","show_news")'>2</td>
     <td width="35%" bgcolor="#FFFFFF"><a href="#" onclick='getNews(4,"indextest1.php?id=","show_news")'>3你好吗?< /td>
   </tr>
   <tr>
     <td height="223" bgcolor="#FFFFFF"> </td>
     <td colspan="3" bgcolor="#FFFFFF"><div id="show_news"></div></td>
   </tr>
</table>
==============================




indextest1.php


=======================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>无标题文档</title>
</head>
<table width="100%"   border="0" cellspacing="0" cellpadding="1">
   <tr>
     <td width="6%"> </td>
     <td colspan="2"> </td>
   </tr>
  
   <?
   if(empty($id)){$id=3;}
$sql="select * from test where test=$id order by id desc limit 0,15";
$result=mysql_query($sql,$myconn)or die(mysql_error());
while($row=mysql_fetch_array($result))
{
//主要看这里
$tt = iconv("gb2312","UTF-8",$row["hhome2"]);


?>
   <tr>
     <td> </td>
     <td width="77%">《<a href="index3.php?id=<? echo $row[0] ?>"><? echo $tt; ?></a>》</td>
     <td width="17%"><? echo $row[7]; ?></td>
   </tr>
   <?
   }
   ?>
</table>


<?
mysql_close($myconn);?>

AJAX 中文亂碼解決

用 AJAX 讀取一個中文頁面時,很多時會出現亂碼,因為 XMLHTTP 處理返回的 responseText 時,會用 UTF-8 編碼解讀,如果頁面送出的文件是 UTF-8 編碼便沒有問題,但如果所使用用的是 BIG5 或者 GB 編碼,就會出現亂碼情況。

解決方法是在送出的頁面加一個 HTTP Header 指定所使用的編碼,方法為:

PHP: header("Content-Type:text/html;charset=BIG5");
ASP: Response.Charset("BIG5")
JSP: response.setHeader("Charset","BIG5");

 

本篇:PHP+AJAX传递数据方法一例。并带中文乱码解决方法

posted on 2009-04-17 17:59  alon  阅读(621)  评论(0编辑  收藏  举报

导航