json stringify到php

i n*_*elp 5 php jquery json

我想将键值传递给php页面.

在php页面,我将通过匹配开始读取值ajaxcallid.

但它不起作用.

它必须使用我传递的语法/方式导致错误.

parse error
invalid json: ajax call id is missing    
Run Code Online (Sandbox Code Playgroud)

的JavaScript/AJAX:

var person = { 
     "Address"    :   "123 Anywhere St.", 
     "City"       :   "Springfield", 
     "PostalCode" :   99999
};

alert(person);          

person= JSON.stringify(person);

alert(person);

$.ajax({
    url: 'ROOT_URL/admin/ajaxtest.php',
    type: "POST",
    dataType: 'json',
    data: {ajaxcallid: '26', jsarr: person},
    timeout: 5000,
    success:  function(output) {
        alert(output.Address);
    },
});
Run Code Online (Sandbox Code Playgroud)

PHP:

<?php
if (isset($_REQUEST['ajaxcallid']))
{    
    if($_REQUEST['ajaxcallid']==26)
    {    
        //example, I want to read value of person.Address, person.City, 
        //person.PostalCode
    //what is the easiest way
        $phparr= json_decode($_REQUEST['jsarr']);
        //do all other operation
        $output= json_encode($phparr);
    }
}
else
{
    $output= "ajax call id is missing";
}
echo $output;
?>
Run Code Online (Sandbox Code Playgroud)

Eva*_*ans 21

如果您不使用dataType:'json',则可能需要使用stripslashes

$.post(window.data.baseUrl, {posts : JSON.stringify(posts)});
Run Code Online (Sandbox Code Playgroud)

在PHP中:

$posts = json_decode(stripslashes($_POST['posts']));
Run Code Online (Sandbox Code Playgroud)


amo*_*war 6

这对我有所帮助:

 data = json_decode($this->request->data['jsarr'], true);
Run Code Online (Sandbox Code Playgroud)

在您的PHP代码中访问记录

希望它会帮助别人!


mud*_*uin 5

我要猜测并说你不应该串通任何东西.我相信JQuery会为你做到这一点.即,没有人= JSON.stringify(人).试一试.


The*_*iot 0

我没有与您合作过PHP,但根据我的经验,ASP.net以下内容可能会对您有所帮助。

添加contentTypeajax 设置键:

type: "POST",
contentType:'application/json',
dataType: 'json',
Run Code Online (Sandbox Code Playgroud)

我还认为你需要像这样stringify分配整个价值data

var person = { 
     "Address"    :   "123 Anywhere St.", 
     "City"       :   "Springfield", 
     "PostalCode" :   99999
};

var d= {ajaxcallid: '26', jsarr: person};
var dat=JSON.stringify(d);


......
data: dat,
......
Run Code Online (Sandbox Code Playgroud)