[英]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.