AJAX在数据库中插入数据的麻烦

时间:2017-04-10 06:14:16

标签: php ajax

我正在使用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);
}

2 个答案:

答案 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插入数据库