我有一个试图学习和构建angularjs应用程序的问题。我只是无法将表单数据保存到mysql中... 我花了好几个小时尝试一切,但它只是没有工作。
使用变量时,PHP文件将空查询输入到mysql表中。如果我使用静态信息,它可以正常工作。
谢谢:)
app.controller('addMsgCtrl', function ($scope, $http) {
$scope.fill = function(add) {
var data = {
addItem: $scope.addItem
};
$http.post("msinput.php",{'data' : $scope.addItem})
.success(function(data, status, headers, config){
console.log("inserted Successfully");
});
};
});

$data = json_decode(file_get_contents("php://input"));
$addItem = mysql_real_escape_string($data->addItem);
mysql_connect("localhost", "username", "password") or die(mysql_error());
mysql_select_db("stran189_taskma") or die(mysql_error());
mysql_query("INSERT INTO message (addItem) VALUES ('$addItem')");
Print "Your information has been successfully added to the database.";

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<form class="add-task" id="newTaskForm" ng-controller="addMsgCtrl" novalidate ng-submit="fill()">
<div class="form-actions">
<div class="input-group">
<input ng-model="addItem" class="form-control" type="text" name="addItem" placeholder="Ny anteckning" />
<div class="input-group-btn"><button class="btn btn-default" type="submit">
<i class="glyphicon glyphicon-plus"></i></button>
</div>
</div>
</div>
</form>
&#13;
响应 JS :&#34;已成功插入!&#34; NET :&#34; POST 200 OK msinput.php&#34; 请求标题:&#34;主持人:(myUrl) 用户代理:Mozilla / 5.0(Macintosh; Intel Mac OS X 10.11; rv:44.0)Gecko / 20100101 Firefox / 44.0 接受:application / json,text / plain, / Accept-Language:en-US,en; q = 0.5 Accept-Encoding:gzip,deflate 推荐人:(myUrl) Content-Type:application / json; charset = utf-8 内容长度:2 连接:保持活力&#34;
响应报头: 连接:保持活力 内容长度:62 内容类型:text / html 日期:星期一,2015年12月7日21:36:53 GMT Keep-Alive:超时= 5,最大= 100 服务器:Apache / 2.4.10(Unix)OpenSSL / 0.9.8e-fips-rhel5 mod_bwlimited / 1.4 变化:用户代理 X-Powered-By:PHP / 5.4.37
答案 0 :(得分:0)
我对您的控制器代码感到有点困惑,但在我看来,您准备将var数据发送到服务器。如果这是真的,你必须$ http.post(&#34; msinput.php&#34;,{&#39; data&#39;:$ scope.data})...
答案 1 :(得分:0)
填写()日志数据。看看是否有任何标志。这个改变
$http.post("msinput.php",{'data' : $scope.addItem})
到这个
$http.post("msinput.php",{'data' : data})
然后检查您的网络XHR并查看数据是否正确发送到服务器。
另外,为了获得有关服务器所述内容的更多信息,您还可以使用此方法并记录错误:
// Simple GET request example:
$http({
method: 'POST',
url: 'msinput.php'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
答案 2 :(得分:0)
首先确保您的数据存在:
在Firefox中打开Firebug,选择控制台选项卡
在Firefox中导航到您的表单,填写表单并提交。
控制台中的最后一行应显示:
index.html
点击此处查看POST&amp; JSON选项卡,它将显示每个字段的所有输入数据。任何遗漏的东西显然都不会进入你的数据库。
一旦您知道您的数据正在离开,那么您就可以找出它未到达的原因。
我还强烈建议您更改为PDO并停止使用mysql函数,现在已弃用它。
好的,现在您知道表单中的数据正在通过您的帖子操作。
在msinput.php中,执行以下操作
POST http://..../msinput.php
查看firebug控制台中的内容。