如何使用带有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
,但您的表单具有idaddData
。因此,在javascript代码中,var url可能是未定义的
在php文件中使用$\u POST
而不是$POST
另外,我建议您检查您的控制台是否存在任何javascript错误对不起,这只是一个错误,它的id=“addControl”NOT id=“addData”$\u POST它的NOT$POST,这里只是一个输入错误$\u POST它的NOT$POST,这里只是一个输入错误。我编辑了上面的代码