如何使用Json将angularJS控制器中的数据发送到PHP

时间:2016-10-07 02:38:17

标签: javascript php angularjs json

我有关于从JS向PHP发送多个数据的问题,我正在使用angularJS。问题是我无法接收任何数据,我是像AngularJS这样的东西的初学者。这是我的JS部分:

var data = {"name":name, "cin":cin, "job":job};

var config = {
        params: data,
        headers: { 'Content-Type': 'application/json' }
    };

    $request = "php/readFromDatabase.php";
    $http.post($request, config).then(function (response) {
        $scope.collectionData = response.data.records;
    });

这应该没关系,我的数据作为struct(对象)的名称和cin和job是变量当我使用angularJS控制器单击按钮时,应该启动此函数并调用PHP文件:

<?php
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
$name = $_POST['name'];

我使用这些信息在数据库中查找数据,然后我将它们作为JSON格式回显我想使用$ http.get {}所以我可以调用response.data.records而不是使用$ ajax {}。 问题是这个$ _POST ['name']不起作用; 即使这不起作用:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$name = $request->name;

正如我所说,我是新来的,所以请告诉我我做错了什么,因为我找不到任何可以帮助我的东西,我把我在互联网上找到的所有内容都捆绑在一起。 希望有人能帮助我,并提前感谢你。

Edit :

这是我的JS文件:

app.controller('shearch_data', function ($scope, $http) {
$scope.ShearchFunction = function () {

    var name = " ";
    if ($('#toggle_name').prop('checked') == true)
        name = $('#inputName').val();

    var cin = " ";
    if ($('#toggle_cin').prop('checked') == true)
        cin = $('#inputCIN').val();

    var job = " ";
    if ($('#toggle_job').prop('checked') == true)
        job = $('#inputJob').val();

    var data = {'name': "ffss", 'cin': cin,  'job': job};

    var url = "php/readFromDatabase.php";
    $http.post(url, data).then(function (response) {
        $scope.collectionData = response.data.records;
    }).catch(function (err) {
        alert('something went wrong')
    });

};
});

我的PHP:

<?php
header("Access-Control-Allow-Origin: *");
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$name = $request->name;
$cin = $request->cin;
$job = $request->job;
$output = "";
$output .='{"Name":"'.$name.'",';
$output .='"Job":"'.$job.'",';
$output .='"Cin":"'.$cin.'"}';
$output = '{"records":[' . $output . ']}';
echo($output);

这就是我正在尝试做的测试,使用http.post将数据从JS发送到PHP,然后我将其作为json接收,现在是jsut for test。

1 个答案:

答案 0 :(得分:0)

params

的参数和配置错误

从配置中删除'Content-Type,这些是用于GET url查询字符串参数

编辑:如果您要设置的只是application/json标题,则不需要配置.... var config = { headers: { 'Content-Type': 'application/json' } }; var url = "php/readFromDatabase.php"; $http.post(url, data, config).then(function (response) { $scope.collectionData = response.data.records; }).catch(function(err){ alert('Ooops...something went wrong') }); 是默认设置

thumb4_btn.addEventListener(MouseEvent.CLICK, gocontact);