![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 ten ![]()
![]() |
整個聊天室的檔 ajax_html:聊天室主要檔案 ajax_conn.php :連接資料庫 ajax_receive.php:將資料寫進資料庫 ajax_response.php:讀資料庫 單獨執行ajax_response.php,讀到的中文不會出現亂碼! 執行 ajax_html 讀到的中文是亂碼,寫進去的中文也是亂碼! 請問有誰知道問題出現在那~~~~ --------------------ajax_chat.html程式碼開始--------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5" /> <title>簡易聊天室(Ajax 版)</title> <link rel="stylesheet" href="ChatCSS.css" type="text/css" /> <script type="text/javascript"> function scrollmove() { ChatBody.scrollTop = ChatBody.scrollHeight; } function GetAJAX(){ var xmlhttp = false; var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("POST","Ajax_response.php",true); xmlhttp.send(null); xmlhttp.onreadystatechange=function() { if ( xmlhttp.readyState==4 || xmlhttp.readyState=='complete' ){ ChatBody.innerHTML = xmlhttp.responseText; scrollmove(); } } } function SendAJAX(){ if (ChatForm.ChatText1.value != "" && ChatForm.ChatText2.value != ""){ var DataToSend = "ChatText1=" + ChatForm.ChatText1.value + "&ChatText2=" + ChatForm.ChatText2.value; var xmlhttp = false; var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("POST","Ajax_receive.php",false); xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=big5'); xmlhttp.send(DataToSend); ChatForm.ChatText2.value = ""; GetAJAX(); } } setInterval('GetAJAX()', 1000); </script> <style type="text/css"> <!-- .style3 { font-size: 24px; font-weight: bold; } body { margin-bottom: 0px; } .style10 {font-size: 18px} --> </style> </head> <body Onload="javascript:GetAJAX();"> <p align="center" class="style3">簡易聊天室(Ajax 版)</p> <table border="1" align="center"> <tr> <form id="form1" name="ChatForm" method="post"> <td width="877" height="462"><div class="ChatBody" id="ChatBody"></div> Name: <input type="text" name="ChatText1" /> <br /> <span class="style10">Chat:</span> <input type="text" name="ChatText2" /> <input type="button" name="Submit" value="送出" onClick="SendAJAX();" /></td> </form> </tr> </table> <table height="51" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="877" height="51"><input type="button" name="back" value="回主畫面" onClick="location='default.php'" /></td> </tr> </table> </body> </html> --------------------程式碼結束--------------------- |
別忘捐VP感謝幫助你的人 | 新手會員瞧一瞧 |
1樓
作者回應
ten ![]() |
一樣的程式碼,這樣比較好閱讀~~
本篇文章回覆於2008-05-11 12:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓 |
AJAX 溝通是以 utf8 為主,所以網頁的 charset 不能設為 big5
本篇文章回覆於2008-05-12 11:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
ten ![]() |
我把第3行和31行改成utf-8
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); 但還是會寫入亂碼! 讀的問題已經解決了, 在ajax_response.php加上 header('Content-Type: text/html; charset=big5'); 就不會讀到亂碼! 同樣的我也在ajax_receive.php加上 header('Content-Type: text/html; charset=big5'); 還是一樣讀到亂碼! ajax_receive.php檔裡面沒有html語法的東西,只有php~~~ 我真的不知道問題出在那! 以下是 ajax_receive.php 的程式碼~~~
本篇文章回覆於2008-05-12 14:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓 |
提議用這個試試看:
mb_convert_encoding(字串,欲轉換的編碼,原本的編碼); 不好意思,我對這個程式還蠻有趣的, 不知是否可以寄全部的程式碼讓我研究一下呢? 信箱:snowerh@pchome.com.tw
本篇文章回覆於2008-05-18 01:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓 |
不好意思,可以麻煩你敘述一下「ajax_response.php」?
「ajax_receive.php」和「ajax_html」大致了解了, 如果不麻煩的話,請您貼一下「ajax_response.php」的原始碼,感謝您!
本篇文章回覆於2008-05-18 11:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
請問一下,可以讀但資料庫寫不進去,請問要改什麼設定嗎??
本篇文章回覆於2008-05-18 15:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓 |
這段好像有點怪怪的:
xmlhttp.send(null); xmlhttp.onreadystatechange=function() { if ( xmlhttp.readyState==4 || xmlhttp.readyState=='complete' ){ ChatBody.innerHTML = xmlhttp.responseText; scrollmove(); 通常應該是要先告訴瀏覽器,如果伺服器回應之後該怎麼處裡,然後才會送出request, 因為是非同步的,所以如果你的request先送出去, 還沒來得及傳回值,就結束了。 如果是我,我會把onreadystatechange放在xmlhttp.send(null);之前, 這樣當你的request送出去之後,從伺服器丟回來的值,瀏覽器才會知道該怎麼處理。 readystate..一般如果成功應該是寫200...錯誤會有403或者404.. 以上是個人淺見,不保證正確,有錯誤請原諒 = =
本篇文章回覆於2008-05-20 11:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
作者回應
ten ![]() |
問題已經決解了,謝謝大家 ^^
這個是php作業四的題目,我沒辨法公佈全部程式碼! 避免有人想不勞而獲!
本篇文章回覆於2008-05-22 08:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓
作者回應
ten ![]() |
請問一下,可以讀但資料庫寫不進去,請問要改什麼設定嗎??
致於這個問題,沒有錯誤訊息我怎麼知道你為什麼寫不進去!
本篇文章回覆於2008-05-22 08:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓 |
而且if ( xmlhttp.readyState==4 || xmlhttp.readyState=='complete' )
這樣寫應該也不對吧? = =a 是不是應該這樣=>if ( xmlhttp.readyState==4 && xmlhttp.readyState=='200' ).. 要把||改成&&..
本篇文章回覆於2008-05-23 11:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |