如何使用带有ajax的定制php MVC将数据插入数据库

如何使用带有ajax的定制php MVC将数据插入数据库,php,ajax,model-view-controller,Php,Ajax,Model View Controller,我想把数据存储到数据库中 我试过这个: 在视图中我创建了以下表单: <form id="addControl" action="<?php echo URL ?>controles/addControl" method="POST"> <input type="text" name="text1"> <input type="text" name="text2"> <input type="text" name="te

我想把数据存储到数据库中

我试过这个:

视图中我创建了以下表单:

<form id="addControl" action="<?php echo URL ?>controles/addControl" method="POST">
    <input type="text" name="text1">
    <input type="text" name="text2">
    <input type="text" name="text3">
    <input type="submit" name="Add">
</form>
然后我创建了一个控制器

controlles.php

public function addControl(){
    $text1  = $_POST['text1'];
    $text2  = $_POST['text2'];              
    $text3  = $_POST['text3'];

    $stmt = $this->db->prepare("INSERT INTO `controles` (field1, field2, field3 ) VALUES(?,?,?)");
    $stmt->execute(array($text1,$text2,$text3));

    if($stmt == true){
        return "good";
    }else{
        return "wrong";
    }
}
class Controles extends Controller {    
    function __construct(){
        parent::__construct();
    }
    public function index(){        
        $this->view->render('controles/index');
    }
    function addControl(){
        $this->model->addControl();
    }
}
最后,对于JS文件,我创建了以下内容:

$("#addControl").on('submit', function(e){
    e.preventDefault();

    var url     = $(this).attr('action');
    var data    = $(this).serialize();

    $.post(url, data, function(response) {
        if(response == "good"){
            $("#insertedSuccessfully").show();
        }else if(response == "wrong"){
            $("#notInserted").show();
        }   
    });
});
这一切都行不通。我怎样才能修好它

注意:数据库连接正常,只要我能检索,它就可以正常工作 来自数据库的数据


$POST不是PHP给出的数组,而是类似于更多的$\u POST。
因此,在您的模型中,您没有要插入的数据。

您已将事件侦听器附加到id
addControl
,但您的表单具有id
addData
。因此,在javascript代码中,var url可能是
未定义的

在php文件中使用
$\u POST
而不是
$POST


另外,我建议您检查您的控制台是否存在任何javascript错误

对不起,这只是一个错误,它的id=“addControl”NOT id=“addData”$\u POST它的NOT$POST,这里只是一个输入错误$\u POST它的NOT$POST,这里只是一个输入错误。我编辑了上面的代码