AngularJS将数据发布到php mysql插入

时间:2013-02-17 10:31:38

标签: php mysql json angularjs

我正在编写一个成功允许我登录Facebook的webapp(我正在使用Phonegap和Phonegap Facebook插件)。然后我想存储登录的用户名和ID。首先作为一个简单的测试我想让以下控制器运行收集ID,在xcode控制台中显示它以确认它在那里,然后将其发送到下面的PHP代码然后存储在mysql表中。我似乎无法让它工作,我认为它可能是$ http.post中{}的数据格式,但是我现在的知识有点超出我的想法。有什么想法吗?

function FacebookCtrl($scope) {
    FB.api('/me', function(response) {
       var fbid=response.id;
       console.log('Testing, ' + fbid + '.');
       $http.post('http://somedomain.co.uk/php/users.php', {uid: fbid})
       console.log('Complete');
    });
}

接收端的php代码是:

<?php
    $data = file_get_contents("php://input");
    $objData = json_decode($data);

    $uid = $objData->uid;

    try {
        include 'database.php';
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare('INSERT INTO Userdata (oauth_uid) VALUES (:userid)');
    $stmt->execute(array(
            ':userid' => $uid,
    ));
    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }
?>

相同的php代码与我的另一个控制器一起使用但不同之处在于另一个控制器捕获从表单传递的数据,因此http.post看起来像这样:

$http.post('http://somedomain.co.uk/php/submitdata.php', {Position1: $scope.position1}

php中捕获此数据的代码是:

$Position1 = $objData->Position1->Name;

由于代码都适用于另一个控制器,我假设问题是如何格式化我在{}之间传递的数据?

1 个答案:

答案 0 :(得分:1)

尝试定义成功\错误回调

$http.post("http://somedomain.co.uk/php/users.php", {uid: fbid})
    .success(function(data, status, headers, config) {
        $scope.data = data;
    }).error(function(data, status, headers, config) {
        $scope.status = status;
    });

那会怎么说?