我正在为我的网站基于php,mysql和ajax创建一个shoutbox。现在,我希望用户能够编写一条消息,使用Ajax打开保存文件,然后使用php将消息插入数据库。 一切正常-除了ajax部分。不知何故它无法打开保存文件。
html:
<input type='text' id='shoutbox-comment' name='shoutbox-msg' style='width: 179px;' value='My message'>
<input type='submit' name='shoutbox-submit' value='ok' onclick='shoutbox-send();'>
我正在将Medoo框架用于任何数据库请求。我已经使用普通的html表单尝试过该代码,并且文件本身运行正常。
php“ shoutbox-write.php”:
if (!empty($_POST['msg'])){
$userid = $_SESSION['id'];
$message = substr($_POST['msg'],0,200);
$message = xss($message);
$now = time();
$database->insert("shoutbox", ["userid" => $userid, "message" => $message, "time" => $now]);
}
现在出现问题了。我尝试了各种方法,甚至将整个脚本更改为GET,以查看其是否有效。什么都没有。第一个JavaScript代码是我从here那里获得的代码。第二个是我以前使用过的。两者都没有工作。请注意,我要解决此问题而不使用JQuery。
function shoutbox-send() {
var xmlHttp = new XMLHttpRequest();
var url="<?php echo PATH; ?>divers/shoutbox-write.php";
var message = document.getElementById('shoutbox-comment').value;
var parameters = "msg="+message;
xmlHttp.open("POST", url, true);
//Black magic paragraph
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", parameters.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
document.getElementById('shoutbox-comment').value="";
}
}
xmlHttp.send(parameters);
}
function shoutbox-send() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var message = document.getElementById('shoutbox-comment').value;
document.getElementById('shoutbox-comment').value = "";
}
};
xhttp.open("POST", "<?php echo PATH; ?>divers/shoutbox-write.php", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("msg=" + message + "");
}
感谢您的帮助。
编辑:已解决!函数名称不得包含连字符。现在正在工作