我想将键值传递给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)
这对我有所帮助:
data = json_decode($this->request->data['jsarr'], true);
Run Code Online (Sandbox Code Playgroud)
在您的PHP代码中访问记录
希望它会帮助别人!
我没有与您合作过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)
| 归档时间: |
|
| 查看次数: |
53413 次 |
| 最近记录: |