我一直在用 javascript 和 php 之间的这种简单通信撞墙。我有一个 HTML 表单,它要求用户输入两个数字。它应该将这两个数字作为 JSON 发送到服务器 (process.php)。在服务器中,它应该将两个数字相加并将结果发送回 JavaScript。之后,它会将结果打印在 HTML 文件上。javascript.js$(document).ready(function(){ $('#calcular').click (function(e){ e.preventDefault(); var numerosJSON = JSON.stringify($('#myForm').serializeArray()); $.ajax({ url: '/process.php', type:'post', data: numerosJSON, contentType: 'application/json; charset=utf-8', dataType: 'json', contentType: 'application/json', success: function(soma){ //shows result in a div in the html file $('#out').text(soma); } }); });})进程.php$json = file_get_contents('php://input');$numeros = json_decode($json, true);$fst = $_POST['first'];$snd = $_POST['second'];$soma = $fst + $snd;header('Content-Type: application/json, charset=utf-8');echo json_encode($soma);它确实发送了请求,但我总是收到错误消息:致命错误:无法使用 stdClass 类型的对象作为数组你们能帮我解决这个问题吗?这让我疯狂!
1 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
在您发布的 PHP 代码中,您解码接收到的 JSON 对象但不使用它,而是尝试从$_POST. 解码对象后,您将拥有一个包含每个序列化输入name和value子项的数组元素。如果要按名称访问这些元素,则需要通过array_map()或 while/for循环接收和解码的数组。为简单起见,我在示例中使用了按数组索引访问。
<?php
$json = file_get_contents('php://input');
$numeros = json_decode($json, TRUE);
$fst = $numeros[0]["value"];
$snd = $numeros[1]["value"];
$soma = $fst + $snd;
header('Content-Type: application/json, charset=utf-8');
echo json_encode($soma);
- 1 回答
- 0 关注
- 143 浏览
添加回答
举报
0/150
提交
取消