簡體   English   中英

如何從PHP中的JSON對象檢索值

[英]How to retrieve values from a JSON Object in PHP

我現在已經使用不同的方法嘗試了很多次,但沒有一個對我有用,所以我問這個問題。

我有一個小表格,其中包含4條信息,一個人的頭銜,名字,中間名和姓氏。 當我按下按鈕時,就形成了一個JSON對象,並通過jQuery.ajax方法作為發布數據發送。

JSON發送到PHP文件:

{
    "title": "Mr", 
    "firstName":"Banana",
    "middleName":"Slippy",
    "lastName":"McDougle"
}

Ajax呼叫按鈕按下:

    function insertPerson(obj, callback){
        $.ajax({
            type: "POST",
            data: "json=" + JSON.stringify(obj),
            url: "insertData.php",
            success: function(obj){
                if (callback){ callback(obj) };
            },
            error: function(error){
                console.log("Error:");
                console.log(error);
            }
        });
    }

我傳入一個Javascript對象,然后將其字符串化並發布為參數名稱“ json”。

在我的php文件中,我將發布的字符串分配給一個名為$ json的變量,然后使用json_decode()進行解碼,進行一些時髦的處理,然后將響應發送回瀏覽器。

insertData.php:

require ('connect.php');
header('Content-type: application/json');

$json_string = $_POST['json'];
$json = json_decode($json_string);
...do server related inserts/selects etc...
echo json_encode($json->title);

目前,我只想返回在post請求中發送的json對象的title屬性,但是我返回的任何內容都返回為null。 如果我回顯該字符串而不解碼,則得到以下信息:

{\"title\":\"Mr\",\"firstName\":\"Banana\",\"middleName\":\"Slippy\",\"lastName\":\"McDougle\"}

如果我嘗試使用以下方法提取值:$ title = $ json-> title; 並將其放入MYSQL語句中,將其插入為null或空白,則不會輸入任何內容。

難道我做錯了什么? 還是我以某種方式獲得了過時的PHP版本來處理JSON? 非常感謝您的幫助。

為什么要將JSON發送到PHP腳本? 使用查詢字符串有什么問題?

$.ajax({
    type: "POST",
    data: obj,
    url: "insertData.php",
    success: function(obj){
        if (callback){ callback(obj) };
    },
    error: function(error){
        console.log("Error:");
        console.log(error);
    }
});

這會將obj轉換為查詢字符串,然后您可以執行$_POST['firstName']$_POST['lastName']

我認為這是最適合您的鏡頭。

帶有PHP的jQuery Ajax POST示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM