Javascript Angularjs将表单输入保存到php和Mysql

Javascript Angularjs将表单输入保存到php和Mysql,javascript,php,mysql,angularjs,Javascript,Php,Mysql,Angularjs,我在尝试学习和构建angularjs应用程序时遇到了一个问题。我只是无法将表单数据保存到mysql。。。 我花了好几个小时试了所有的东西,但都不管用 当使用变量时,PHP文件向mysql表输入空查询。如果我使用静态信息,它可以正常工作 谢谢:) app.controller('addMsgCtrl',函数($scope,$http){ $scope.fill=函数(添加){ 风险值数据={ addItem:$scope.addItem }; $http.post(“msinput.php”,{

我在尝试学习和构建angularjs应用程序时遇到了一个问题。我只是无法将表单数据保存到mysql。。。 我花了好几个小时试了所有的东西,但都不管用

当使用变量时,PHP文件向mysql表输入空查询。如果我使用静态信息,它可以正常工作

谢谢:)

app.controller('addMsgCtrl',函数($scope,$http){
$scope.fill=函数(添加){
风险值数据={
addItem:$scope.addItem
};
$http.post(“msinput.php”,{'data':$scope.addItem})
.success(函数(数据、状态、标题、配置){
console.log(“插入成功”);
});
};
});
$data=json\u解码(文件获取内容)php://input"));
$addItem=mysql\u real\u escape\u字符串($data->addItem);
mysql_connect(“localhost”、“用户名”、“密码”)或die(mysql_error());
mysql_选择_db(“stran189_taskma”)或die(mysql_error());
mysql_查询(“插入到消息(addItem)值(“$addItem”)”;
打印“您的信息已成功添加到数据库。”

我对您的控制器代码有点困惑,但在我看来,您准备了要发送到服务器的var数据。如果这是真的,您必须在fill()日志数据中添加$http.post(“msinput.php”,{'data':$scope.data}).

。看看里面有没有东西。改变这个

$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.
});

首先确保您的数据存在:

在Firefox中打开Firebug,选择console选项卡

在Firefox中导航到您的表单,填写表单并提交

控制台中的最后一行应显示:

POST http://..../msinput.php
单击此项并查看POST&JSON选项卡,它将显示每个字段的所有输入数据。任何明显缺失的东西都不会进入你的数据库

一旦你知道你的数据正在离开,你就可以找出为什么它没有到达

我还强烈建议您改为PDO并停止使用mysql函数,因为它现在已被弃用

好的,现在您知道表单中的数据将通过post操作离开

在msinput.php中执行以下操作

var_dump( file_get_contents(http://input) );

查看firebug控制台中返回的内容。

为什么要使用现代前端框架,而使用过时的php?请在开发人员模式下使用“网络”选项卡查看文章中包含的内容。将$data的内容打印到屏幕以进行调试。$data为空。。。它运行在共享主机服务上,我无法安装到服务器上。否则node.js+noSQL db就不需要动脑筋了。你是对的,我一直在反复修改代码,以至于错过了这些,谢谢,但除了空的db插入外,还是什么都没有:)当我在Firebug返回的表单中写入“katt”时,添加了对top@shaneal的响应:“JSON数据”katt“Source{”data:“katt”}插入成功”是的,这很有效。