在php中实现Ajax MVC
问题描述:
我想在php mvc项目中实现Ajax,我想用ajax将用户添加到数据库中。 我试图按照YouTube的教程,但不能插入数据,这里是我的index.html页:在php中实现Ajax MVC
<!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文件
答
我看到两个公关oblems乍一看:
首先,在您的JS代码,你拼错function
:
success:fucntion(msg){ // <-- fuCNtion should be fuNCtion
alert('Success,ajotuer fil base');
}
其次,在你的PHP代码,你也没能逃脱在字符串中的引号。如果您在字符串中使用单引号,要么使用字符串括在双引号或逃避单引号:
if (isset($_POST['name']) || isset($_POST['email'])){
echo 'error couldn\'t retrieve inputs'; // or:
echo "error couldn't retrieve inputs";
}
尝试这一点,让我们知道是否可行。
语法错误在您的PHP中...可以清楚地看到它在语法高亮内的问题代码。也可以通过使用?controller = pages&action = add这种方式将php文件路径用于$ ajax url – charlietfl
中routes.php文件将把请求发送到将处理请求的文件page_controller。 对于PHP错误语法其''不能'字我删除它,但仍然可以插入数据 –
,但你说这是一个HTML页面。不清楚你的mvc如何工作,你正在使用什么框架,或服务器端路由如何工作 – charlietfl