我正在使用AJAX为抽搐视频构建聊天系统。重点是动态显示提交的消息,而不重新加载页面,它可以工作。但是,消息未提交到我的数据库,并且在页面刷新时,提交的消息消失了。显示我在DB中手动插入的那些。这是我的代码:
Dashboard.twig:
Xamarin.Android.Support.Percent
DisplayCommentsModel: -
<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();
});
AddCommentsModel
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;
}
}
CommentsController:
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);
}
答案 0 :(得分:1)
在CommentsController文件中的post函数中,您没有将数据插入数据库。下面的代码部分只会回显收到的内容。
$data = array(
'name' => $name,
'comment' => $comment
);
echo json_encode($data);
在发回数据之前,你应该调用AddCommentsModel中的insertCommentsInDb()
答案 1 :(得分:1)
$数据= json_encode($数据); //不需要回声
$这 - &GT; DB-&GT;插入(&#39;表名&#39;,$数据); //你忘了这一行,这会将json_format插入数据库