Javascript - 不确定我的AJAX是否正确,没有错误但没有数据库条目

时间:2011-03-29 03:40:19

标签: php javascript ajax chatroom

我是一个PHP家伙,对javascript非常新。我正在尝试将一个简单的AJAX聊天程序添加到我正在构建的网站中。问题是,我不知道如何测试我的请求是否被发送,或者它背后的PHP是否是问题。如果它是PHP我可以修复它,如果它是javascript,那么,这就是这个问题的用途。我没有收到任何错误,但我也没有在我的数据库中收到任何聊天消息。这是我在聊天页面上的javascript:

<script type="text/javascript">
var xmlhttp;
var newChatMessage;
window.onunload=function() {
    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
        }
    else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    xmlhttp.open("POST","tinChat_process.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("action=pageClose");
};
function loadChat() {
    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
        }
    else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    xmlhttp.open("POST","tinChat_process.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("action=grabChat");
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("ajaxBox").innerHTML=xmlhttp.responseText;
            }
        }
    t=setTimeout("loadChat()",5000);
    }
function sendMessage() {
    newChatMessage = "action=newMessage&message=" + document.getElementByID("chatMess").value;
    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
        }
    else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    xmlhttp.open("POST","tinChat_process.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send(newChatMessage);
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("ajaxBox").innerHTML=xmlhttp.responseText;
            }
        }
    }
loadChat();
</script>

我确信有更好的方法来编写代码,但任何人都可以看到它中的任何错误吗?我通常的PHP调试方法不起作用,因为它们包括带有骰子消息的半分割问题区域或者vardumping期望值等等 - 所有这些在页面加载后都不会真正显示,对吗?所以这让我无法在PHP或javascript之间进行半分割。无论如何,谢谢你的帮助。

4 个答案:

答案 0 :(得分:2)

一个重要的调试工具是Firebug,它是Firefox的插件。

您不仅可以使用它来检查HTML,还可以查看XMLHTTP请求的内容。

安装完成后,您会在右下角看到firebug图标。打开它启用所有内容并选择NET选项卡。你可以从那里开始探索。

答案 1 :(得分:0)

此外,在IE9中,您可以使用F12来调试和查看错误。

答案 2 :(得分:0)

我看不到在该段代码中的任何地方调用sendMessage()。

答案 3 :(得分:0)

您的代码只有一个错误... document.getElementByID(“xxx”)不是方法。它是document.getElementById(“xxx”)。我尝试了你的代码 - 它回复到tinChat_process.php,参数action = newMessage,message =“无论你在那个框中输入什么......”..如果你仍然无法解决,你可以发布chatMess和ajaxBox并告诉我们如何你正在调用sendMessage()?我添加了一个按钮来测试呼叫:

<button onclick="sendMessage()">Go</button>