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没有响应,因为我尝试将数组推送到一行表中。。。好的,我会先试着分小块。。。谢谢你的提示。。。