创建JSON obj并通过jQuery AJAX将其发送到PHP并响应它
Make JSON obj and send it via jQuery AJAX to PHP and respond to it
我现在正在研究这个问题大约 2-3 个小时,我找不到我做错的地方。这是我的jQuery,它将构建一个对象:
var data = {cat:[],count:[],size:[],type:[],print:[]};
$("#Cat-list option").each(function()
{data.cat.push($(this).val());});
$("#Count-list option").each(function()
{data.count.push($(this).val());});
$("#Size-list option").each(function()
{data.size.push($(this).val());});
$("#Print-list option").each(function()
{data.print.push($(this).val());});
$("#Type-list option").each(function()
{data.type.push($(this).val());});
在此之后,我将有一个名为 data 的对象。 当我通过var jsonString=JSON.stringify(data);
将 OBJ 转换为 JSON 时,它会给我这样的内容:
{
"cat":["Cart Visit","Bag","Envelope","Tracket","Brosur"],
"count":["1000","2000","4000","5000","?????"],
"size":["S","M","L","X"],
"type":["?? ??","??? ? ??","????"],
"print":["????","???????","????"]
}
然后我使用 jQuery Ajax 将 jsonstring 发送到我的 php 文件,如下所示:
$.ajax({
type: "POST",
url: 'update_db.php',
data: jsonString,
contentType: "application/json; charset=utf-8",
success:
function(result) {
$( "#alert").html( result );
}
});
最后,我尝试使用PHP脚本接收数据。 我不知道如何为此获取数据 我尝试使用"jsonstring"和"data":
$json = json_decode( $_POST['jsonstring']);
$data = json_decode( $_POST['data']);
var_dump($json);
var_dump($data);
但两者都是"空"。我做错了什么?
当你将JSON(application/json
)发布到PHP时,它不会自动被解析(不像传统的编码,application/x-www-form-urlencoded
)。 您需要手动读取它:
$jsonText = file_get_contents('php://input');
$data = json_decode($jsonText)
你得到NULL
,因为这是json_decode()
返回无效输入的内容($_POST
为空,所以没有什么可解码的)。
P.S. - php://input
是由 POST/PUT/whatever 提交的原始数据的特殊文件名,无论使用何种编码。 有关完整文档,请参阅 php.net 手册。
相关文章:
- 使用AJAX只获取PHP响应
- AJAX-没有得到简单的php响应(返回“undefined”)
- AJAX PHP - 响应是一个具有空值的对象
- 如果 PHP 响应等于某物,如何使 jQuery 警报
- DropzoneJS:上传成功后如何获得PHP响应
- PHP:响应 AJAX 发布请求
- 在javascript http post请求之后处理不同的php响应
- 使用 ajax 显示 php 响应文本
- PHP响应变得非常慢(使用MySQL)
- Ajax,处理 javascript 中的 php 响应
- 从 php 响应 AJAX 的更好方法
- jQuery认为每个PHP响应都有staus 0
- 将 PHP 响应输出为 XML
- 将PHP响应日期转换为客户端本地时间
- 使用jQuery将PHP响应的字符串分配给Javascript中的变量
- 如何在JavaScript中动态创建的输入字段中更新特定的输入字段,ajax从PHP响应
- 尝试用Javascript填充字段,由PHP响应
- 在HTML中使用返回的JSON编码AJAX PHP响应<作为值
- 如何在ajax中添加基于php响应的消息,同时处理
- 原型Javascript框架-获取PHP响应