我已经尝试并测试了各种方法来完成这项任务大约一天了。请注意,我正在简单地构建这个,然后继续努力!
我有一个由textarea和两个输入字段组成的表单。输入字段允许XMLHttpRequest
发送与用户名和消息相关的信息 - 发送到我正在尝试制作的聊天室。
我对我的请求的问题,只是我可以发送信息,并在数据库中插入一行,但我无法获得任何信息!您将从下面的代码中看到,我已发出警报,以检查响应文本是什么,但它返回为空(不是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
}
?>
有人能提供我出错的地方的线索吗?
答案 0 :(得分:1)
代码对我来说很好,你的PHP代码是在数据库中插入数据,但它没有返回任何文本或值。
对于要在客户端检索的值,即成功完成ajax请求后,您必须将数据发送到客户端。
尝试使用php的echo函数并返回文本/值。