簡體   English   中英

將Javascript JSON發布到PHP; 價值觀沒有過去

[英]Javascript JSON post to PHP; Values not passing

我知道有很多線程都遇到同樣的問題,但是我覺得我已經讀了十遍了,在這里我發瘋了...

我正在使用Javascript / Ajax將帖子發布到PHP頁面。 首先,我創建一個帶有key:value pair的對象。 然后我將對象進行字符串化。 結果是:

{"ID":"150433699","FileNo":"1114"} \\\\I have tried putting singles quotes on the ends of the string

阿賈克斯郵報:

$.ajax(
{
    type:"POST",
    url:"<mydomain>/valupd.php",
    dataType:"json",
    data:jsonStr //This variable is what I used to output the json listed above.
});

PHP代碼:

$json = $_REQUEST["jsonStr"];
$JD = json_decode($json, true);
$id = $JD['ID'];

我沒有包括我的SQL連接,因為它可以工作。 除非插入檢查,否則記錄將插入空白或默認值,在這種情況下,它不會添加記錄。

我還創建了另一個測試php頁面。 然后使用console.log(jsonStr)的輸出作為值聲明一個字符串變量。 -與前面列出的json字符串相同的輸出。 我使用與上面列出的完全相同的PHP代碼來處理該字符串,並且能夠回顯FileNo的值。

您的ajax端通話應為

data: 'jsonStr='+jsonStr
       ^^^^^^^--fieldname
                 ^^^^^^^---value

這將允許$_POST['jsonStr']工作。 否則,由於沒有字段名,因此無法填充$_POST[] -您必須具有key:value關系,並且您未提供任何鍵。

另一個解決方法是

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

在PHP中檢索RAW發布數據,該數據將直接讀取json字符串。

首先,當您從JavaScript發布到php時,請確保您的數據是json對象,請不要通過JSON.stringify運行它。

$.ajax(
{
    type:"POST",
    url:"<mydomain>/valupd.php",
    dataType:"json",
    data:jsonObj //This should be an object
});

執行調用時,json對象中的屬性將成為$ _POST php超全局變量中的項目。

所以給一個看起來像

 {"ID":"150433699","FileNo":"1114"}

您將能夠以以下方式訪問屬性

 $id = $_POST["ID"];
 $fileNo = $_POST["FileNo"];

暫無
暫無

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

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