我正在开发聊天应用程序。
该程序应该使用AJAX将用户输入的文本插入数据库。但是,它现在无法正常工作。我认为这是一个简单的错误(例如我的代码中某处的错误变量名称)。请帮忙。
我在数据库中有一个表,我称之为 chattest 。字段如下:
1. Chat_Id(主键,自动增量,INT)
2. Chat_User_Id(INT)
3. Chat_Text(文字)
我有一个名为 classes.php 的文件,其中包含:
<?php
class chat {
private $Chat_Id, $Chat_User_Id, $Chat_Text;
public function getChatId(){
return $this->Chat_Id;
}
public function setChatId($Chat_Id){
$this->Chat_Id = $Chat_Id;
}
public function getChatUserId(){
return $this->Chat_User_Id;
}
public function setChatUserId($Chat_User_Id){
$this->Chat_User_Id = $Chat_User_Id;
}
public function getChatText(){
return $this->Chat_Text;
}
public function setChatText($Chat_Text){
$this->Chat_Text = $Chat_Text;
}
public function InsertChatMessage(){
include "conn.php";
$req=$bdd->prepare("INSERT INTO chattest (Chat_User_Id,Chat_Text) VALUES (:Chat_User_Id,:Chat_Text)");
$req->execute(array(
'Chat_User_Id'=>$this->getChatUserId(),
'Chat_Text'=>$this->getChatText()
));
}
}
?>
和 insert_message.php 文件或功能,其中包含:
<?php
session_start();
include "classes.php";
if(isset($_POST['ChatText'])) {
$chat = new chat();
$chat -> setChatUserId($_SESSION['id']);
$chat -> setChatText($_POST['ChatText']);
$chat -> InsertChatMessage();
}
?>
包含AJAX的聊天页面如下:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="style.css" type="text/css" />
<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
<title>Chat Application Home</title>
<script type="text/javascript">
$(document).ready(function() {
$("#ChatText").keyup(function(e) {
//When We Press Enter Do
if(e.keyCode == 13) {
var ChatText = $("#ChatText").val();
$.ajax({
type:'POST',
url:'insert_message.php',
data:{Chat_Text:"Test Chat"},
success:function(){
$("#ChatText").val("");
}
});
}
});
});
</script>
</head>
<body>
<h2> Welcome <?php echo $_SESSION['fname'] ?> </h2>
</br></br>
<div id="ChatBig">
<div id ="ChatMessages">
</div>
<textarea id="ChatText" name="ChatText"> </textarea>
</div>
</body>
</html>
最后,下面是连接到db的脚本,名为 conn.php :
<?php
try{
$bdd = new PDO("mysql:host=localhost;dbname=dbtestt","root","")
}catch(Exception $e){
die("ERROR : ".$e->getMessage());
}
?>
请帮忙。
答案 0 :(得分:0)
我发现了一个小小的虫子。
在conn.php,它缺少;
conn.php应该是
<?php
try{
$bdd = new PDO("mysql:host=localhost;dbname=dbtestt","root","");
}catch(Exception $e){
die("ERROR : ".$e->getMessage());
}
?>
谢谢大家的回复。