【发布时间】:2017-04-09 20:24:40
【问题描述】:
我想在 php mvc 项目中实现 Ajax,我想使用 ajax 将用户添加到数据库中。 我尝试按照 youtube 教程进行操作,但无法插入数据,这是我的 index.html 页面:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1,shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="views/css/bootstrap.min.css" >
</head>
<body>
<div class="container">
<form>
<div class="form-group">
<label for="name">Name:</label>
<input type="text" class="form-control" id="name" placeholder="Enter Name">
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email" placeholder="Enter Email">
</div>
<button type="submit" onclick="saveData()">Add</button>
</form>
</div>
<!-- jQuery first, then Tether, then Bootstrap JS. -->
<script src="views/js/jquery.js"></script>
<script src="views/js/bootstrap.min.js" ></script>
<script>
function saveData(){
var name=$('#name').val();
var email=$('#email').val();
$.ajax({
type: "POST",
url: "?controller=pages&action=add",
data: "name="+name+"&email"+email,
success:function(msg){
alert('Success,ajotuer fil base');
}
});
}
</script>
</body>
</html>
这是我的控制器功能:
public function add(){
if (isset($_POST['name']) || isset($_POST['email'])){
echo 'error couldnt retreive inputs';
}
else {
$name = $_POST['name'];
$email = $_POST['email'];
User::save($name,$email);
}
}
user.php 文件
public static function save($name,$email){
$db = Db::getInstance();
$req = $db->prepare("INSERT into user(id,name,email) VALUES ('',?,?)");
$req->bindParam(1,$name);
$req->bindParam(2,$email);
$req->execute();
}
更新 1:添加了完整的 index.html 文件
【问题讨论】:
-
您的 php 中的语法错误...可以在问题代码中的语法高亮显示中清楚地看到它。 $ajax url中也没有使用php文件的路径
-
通过使用 ?controller=pages&action=add 这样的方式,routes.php 文件会将请求发送到将处理请求的文件 page_controller。对于 php 错误语法,它的“不能”字我删除了它,但仍然可以插入数据
-
但是你说它是一个html页面。不清楚你的 mvc 是如何工作的,或者你正在使用什么框架,或者服务器端路由是如何工作的
-
对于mvc,我按照本教程link
-
嘿,@KaisBettaieb。首先,欢迎来到 StackOverflow。你能告诉我们到底出了什么问题吗?您的浏览器控制台中是否出现任何错误?或许可以参考stackoverflow.com/help/how-to-ask 了解如何提问。