PHP+AJAX傳遞資料方法一例。並帶中文亂碼解決方案

來源:互聯網
上載者:User
===============
<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傳遞資料方法一例。並帶中文亂碼解決方案

上一個:ajax+php中文亂碼解決辦法 下一個:一個簡單的通用的JS刪除確認函數
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.