为了完成这项任务,我已经尝试和测试了大约一天的各种方法。请提前提醒我,我正在简单的建设,然后工作我的方式!
我有一个由文本区域和两个输入字段组成的表单。输入字段允许XMLHttpRequest
发送与用户名有关的信息,并将消息发送到我试图创建的聊天室。
我的请求的问题是,我可以发送信息,并将一行插入数据库,但我无法获得任何信息!您将从下面的代码中看到,我已经设置了一个警报,以检查响应文本是什么,但它返回为null (不是undefined
,而是""
)。请检查以下代码:
function insertMessage() {
var username = document.getElementById('username').value;
var message = document.getElementById('message').value;
var queryString = "username=" + username + "&message=" + message;
// send the username and message information to be inserted into the database
var url = 'classes/chatroom/chatroom.upload.php';
// create xml request
var request = createCORSRequest("POST", url)
// create a function that will receive data sent from the server
request.onreadystatechange = function () {
if (request.readyState == 4 && request.status == 200) {
alert(request.responseText);
}
}
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(queryString);
}
function createRequest(method, url) {
var thisRequest = new XMLHttpRequest();
if ("withCredentials" in thisRequest) {
// thisRequest has 'withCredentials' property only if it supports CORS
thisRequest.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") { // if IE use XDR
thisRequest = new XDomainRequest();
thisRequest.open(method, url);
} else {
thisRequest = null;
}
return thisRequest;
}
与插入数据库行相关的代码是:
<?php
include 'chatroom.config.inc.php'; // the database file
$message_username = $_POST['username'];
$message_content = $_POST['message'];
if ($message_username == "Username: Once entered, you don't have to enter again" || $message_username == "") {
$message_username = "Guest";
}
if ($message_content == "Message:" || $message_content == "") {}
else {
$users->post_message($message_username, $message_content); // insert database row using PDO query
}
?>
有人能提供我哪里出错的线索吗?
发布于 2014-01-01 16:13:28
在我看来,代码看起来不错,PHP代码正在DB中插入数据,但它没有返回任何文本或值。
要在客户端检索值,即在ajax请求成功完成后,您必须将数据发送到客户端。
尝试使用php的echo函数并返回文本/值。
https://stackoverflow.com/questions/20870450
复制相似问题