Php angularjs测验结果保存到mysql
[询问]我做了一个测验,要求结果可以保存到我的数据库中 这里是我试图保存测验结果的代码Php angularjs测验结果保存到mysql,php,mysql,angularjs,mysqli,Php,Mysql,Angularjs,Mysqli,[询问]我做了一个测验,要求结果可以保存到我的数据库中 这里是我试图保存测验结果的代码 $scope.questions.forEach(function (q, index) { answers.push({ 'QuizId': $scope.quiz.Id, 'QuestionId': q.Id, 'Answered': q.Answered }); $http.post('http://localhost/server_log/insert.php', a
$scope.questions.forEach(function (q, index) {
answers.push({ 'QuizId': $scope.quiz.Id, 'QuestionId': q.Id, 'Answered': q.Answered });
$http.post('http://localhost/server_log/insert.php', answers).success(function (data) { alert(data);
});
});
这里是insert.php
<?php
header("Access-Control-Allow-Origin: *");
header('Content-type: application/json');
$connect = mysqli_connect("localhost", "root", "", "dataujian");
$data = json_decode(file_get_contents("php://input"));
$answer = mysqli_real_escape_string($connect, $data->Answered);
$query = "INSERT INTO nilai (jawaban) VALUES ('$answer')";
mysqli_query($connect, $query);
echo true;
?>
我的代码有什么问题吗
您的代码有一些问题。构建小块,以便您可以边走边测试
- 一个问题是,您正在为每个答案执行一个新的HTTP POST请求
- 另一个问题是,您没有在PHP端验证输入,因此您不知道
php://input
实际包含或json\u解码是否成功
- 另一个问题是,运行DB查询时没有检查错误,因此不知道查询是否成功执行
你说:
当我试图提交时,什么都没有发生
这是模糊的。这是否意味着AngularJS没有提出任何请求?PHP没有响应?查看开发人员控制台,检查查询和错误报告中的错误。您正在调用答案。按。因此,answers
必须是一个数组,但您正试图直接访问$data
上的值。请尝试$data[0]->已回答的。回答数组是正确的。。。知道了。。。让我先试试php没有响应,因为我尝试将数组推送到一行表中。。。好的,我会先试着分小块。。。谢谢你的提示。。。