我有一个php文件,其中用户将填写表单,表单数据将以JSON格式发送到后端php文件,但我无法检索发送到php文件的JSON数据
// DATA SENDING ...
$(document).ready(function () {
$('#submit').click(function () {
var name, id, sec, base;
name = $('#name').val();
id = $('#id').val();
sec = $('#pay').val();
base = [{name: name, reg: id, sec: sec}];
$.ajax({
url: '/post/json.php',
type: 'POST',
data: JSON.stringify(base),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function (json) {
//do something ... after the data successfully processed via json.php
}
}
});
});
});
我试着写php作为简单文件来获取查询字符串并回显它但没有发生......但如果我发布简单查询字符串(通过jQuery)然后它的回声
// PHP BACKEND
<?php
$ar= $_SERVER['QUERY_STRING'];
echo $ar;
?>
答案 0 :(得分:0)
请阅读此页:Get JSON object from URL
$json = file_get_contents('url_here');
$obj = json_decode($json); echo
$obj->access_token;
$_SERVER['QUERY_STRING'];
因为您通过POST发送数据而无法工作。
改为使用$_POST['base']
。
答案 1 :(得分:0)
您使用 POST 作为请求类型,因此提交的所有数据('name', 'red', 'sec')
都可在预定义的$_POST
数组中使用。
此外,您的JavaScript可以简化:
var name = $('#name').val();
var id = $('#id').val();
var sec = $('#pay').val();
$.post( "/post/json.php", {name: name, reg: id, sec: sec}, function( data ) {
...
});
答案 2 :(得分:0)
您需要获取POST数据,这不会作为查询字符串追加, 尝试使用$ _POST或通过post将其发送到变量。
尝试使用:
data: { base : JSON.stringify(base)},
// or data:'base =' + JSON.stringify(base),
然后在php文件中获取
$data = json_decode($_POST['base']);
更多信息:How to send json string to a php file using jquery submit?
答案 3 :(得分:0)
您正在使用http POST请求在服务器上提交数据,该数据可通过
访问
$_POST
超全局数组。
$_SERVER['QUERY_STRING']
将非常有用。
只需使用$_POST['name']
,$_POST['reg']
等来访问提交的数据。
答案 4 :(得分:0)
你可以尝试一下
$(document).ready(function () {
$('#submit').click(function () {
....
base = {name: name, reg: id, sec: sec};
$.ajax({
...
data: base,
dataType: 'json',
...
});
});
});
你的php BACKEND
$post = json_decode($_POST);
答案 5 :(得分:0)
您没有使用过帖子数据密钥,JSON数据将被发布到单个密钥
更改
data: JSON.stringify(base)
到
data: "json="+JSON.stringify(base)
在服务器上获取数据
print_r(json_decode($_POST['json']));