2013-01-09 37 views
-2

我是最近才开始用角,我仍然有一定的困难......AngularJS不能保存到数据库

我似乎无法与我的角度数据来更新我的数据库,但我可以得到的数据从我的数据库。

这是我的代码,我想尝试发布我的数据。

$scope.submit = function(infographic){ 
    var data = { 
      id: infographic.PK_InfoID, 
      label: infographic.label, 
      value: infographic.value 
     }; 
     console.log(data); 
     $http.put("dataout.php", data).success(function(data) { 
           console.log(data); 
               }); 
    }; 

,这里是PHP的使用:

if(isset($_POST['id'])){ 

    $id = $_POST['id']; 
    $label = $_POST['label']; 
    $value = $_POST['value']; 
    $query = "UPDATE tblInfo SET label = '".$label"', value = '".$value"' WHERE PK_InfoID = '$id'"; 
    mysql_query($query); 
} 

有人能帮助我吗?

THX

+0

你有没有尝试过任何调试?你有没有检查是否有任何数据发送到服务器(使用Web开发工具为你的浏览器),你看到任何JavaScript错误? –

回答

0

调试你的PHP文件:

file_put_contents('/tmp/postContents.txt', print_r($_POST, true)); 

会告诉你,如果你的PHP脚本接收所需的数据。

另请确保您没有创建SQL注入安全问题。你应该逃避价值($标签等)。谷歌“SQL注入PHP”的信息。

+0

是的,我知道SQL注入问题,但多数民众赞成没有问题,这是不会上线...... – Wannes

1

Angular会将请求数据作为json编码的字符串发送。 PHP将无法解析该字符串,因此$_POST为空。

使用类似:

<?php 
$data = json_decode(file_get_contents('php://input'), true); 
if (json_last_error() === JSON_ERROR_NONE) { 
    // use $data instead of $_POST 
    print_r($data); 
} 

在接收端。

+0

Thx,最后一个工作,先生你得到我所有的互联网! – Wannes