javascript - 对于通过 Angular $http 发送的 JSON 对象属性,PHP 显示 "{"或 "["

标签 javascript php json angularjs http-post

我以前从未见过这个问题,并且在网上也找不到这个问题。我正在使用 Angular 将表单数据发布到 PHP 页面。我使用 file_get_contents() 方法来检索 POST 数据,这是一个简单的 JSON 对象。

数据属性出现问题 - 当我将 php 变量分配给数据时,它们总是具有值“{”或“[”(我回显并记录它们)。知道是什么原因导致这个问题吗?

相关表格声明:

<form name="itemForm" ng-if="true" id="newItemForm" class="add-item" ng-submit="addItem(itemForm)">
            <input type="text" class="form-control data-entry"  ng-model="itemForm.itemType" placeholder="Type" ng-focus="true">

这是我的 Angular 函数:

$scope.addItem = function(itemForm) {
        $http.post("../ajax/addItem.php", itemForm).success(function(data) {
            //console.data(JSON.stringify(itemForm));
            console.log(data);
            currItem = itemForm;
            itemsArr.push(angular.copy(itemForm));
            $scope.itemForm = defaultForm;
            getItem();
        });
    };

部分 PHP:

<?php 

$params = file_get_contents('php://input');

if($params){
    $item = $params["item"];
    $type = $item["itemType"];
    //get other parameters, insert into MySQL database

    echo json_encode(["type = " => $type]);
}
?>

最佳答案

您正在为数组使用基于字符串的键。用 Javascript 术语来说,它必须表示为一个对象,它使用 {} 作为分隔符。使用 [] 的正确数组仅接受数字键。

请注意,type = 作为数组键有些多余。为什么不直接输入

关于javascript - 对于通过 Angular $http 发送的 JSON 对象属性,PHP 显示 "{"或 "[",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24493106/

相关文章:

javascript - 处理 Ajax JSON 数据时,如何在 .each() 循环中使用 .html() 中的变量?

php - 每年循环自动递增年份

php - 如何在 INSERT 中执行 foreach?

c# - 序列化为 XML 时如何处理 JSON 键中的空格?

javascript - AngularJS 在 Controller 中注入(inject)模块

javascript - .prototype 的简单用法,幕后发生了什么?

javascript - React Native Router - 元素类型无效

php - 从哪里开始将 Paypal 集成到我的事件网站?

PHP json_encode() 使数据为空

Python 解码 JSON 中的嵌套 JSON