我使用AJAX为一个抽搐视频构建聊天系统。重点是动态显示提交的消息,而无需重新加载页面,并且工作正常。然而,这些消息并未提交给我的数据库,并且在刷新页面时,提交的消息不见了。显示我手动插入数据库中的数据。这里是我的代码:AJAX在数据库中插入数据的问题
Dashboard.twig:
<script>
$("#forminput").submit(function(e){
var url = "dashboard";
$.ajax({
type: "POST",
url: url,
data: $("#forminput").serialize(),
dataType: 'json', //what is returned
success : function(data)
{
$("#table").append("<tr><td>" + data.name + "</td><td>" + data.comment + "</td></tr>");
}
});
e.preventDefault();
});
DisplayCommentsModel: -
private $name;
private $comment;
public function printComments()
{
$app = \Yee\Yee::getInstance();
$cols = Array ("name", "comment");
$comments = $app->db['db1']->get("comments", null, $cols);
if ($app->db['db1']->count > 0)
{
return $comments;
}
}
AddCommentsModel
private $name;
private $comment;
public function __construct($name, $comment)
{
$this->name = $name;
$this->comment = $comment;
}
public function comment()
{
if ($this->validateEmptyFields() == false)
{
return false;
}
if ($this->validateFilledFields() == false)
{
return false;
}
return true;
}
public function validateEmptyFields()
{
if(empty($this->name) || empty($this->comment))
{
return false;
}
else
{
return true;
}
}
public function validateFilledFields()
{
$nameLenght = strlen($this->name);
$commentLenght = strlen($this->comment);
if($nameLenght < 2 && $commentLenght < 2)
{
return false;
}
return true;
}
public function insertCommentsInDb()
{
$app = \Yee\Yee::getInstance();
$data = array(
"name" => $this->name,
"comment" => $this->comment
);
$app->db['db1']->insert('comments', $data);
}
CommentsController:
public function index()
{
$app = $this->getYee();
$newDisplayCommentsModel = new DisplayCommentsModel();
$comments = $newDisplayCommentsModel->printComments();
$data = array(
'comments' => $comments
);
$app->render('dashboard/dashboard.twig', $data);
}
/**
* @Route('/dashboard')
* @Name('dashboard.post')
* @Method('POST')
*/
public function post()
{
$app = $this->getYee();
$name = $app->request->post('name');
$comment = $app->request->post('comment');
//add to database
$data = array(
'name' => $name,
'comment' => $comment
);
echo json_encode($data);
}
如何获得'$(“#forminput”)。serialize()'php'中的值 –
你能更具体吗?在php中获取值是什么意思? – CoffeeGuy
@MayankPandeyz刚刚明白你的意思。感谢我的评论控制器 – CoffeeGuy