angularjs quiz将结果保存到mysql

时间:2017-07-24 00:54:32

标签: 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', 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;
?>  

但是当我尝试提交它没有任何反应时,我的代码有任何问题。

1 个答案:

答案 0 :(得分:0)

  

我的代码有什么问题。

您的代码存在一些问题。构建小块,以便您可以随时测试。

  • 一个问题是你正在为每个答案做一个新的HTTP POST请求。
  • 另一个问题是你没有在PHP方面验证你的输入,所以你不知道php://input实际包含什么或json_decode是否成功
  • 另一个问题是,在运行数据库查询时,您没有检查错误,因此您无法确定查询是否已成功执行

你说:

  

当我尝试提交时没有任何事情发生

这很模糊。这是否意味着AngularJS没有提出任何要求? PHP没有响应?