【发布时间】:2019-07-03 15:26:53
【问题描述】:
我通过 ajax 将对象传递给 PHP 文件进行如下处理:
var Obj = {id:1, name:"John", value:12.1};
$.ajax({
url : "myfile.php",
type : 'POST',
data : Obj,
success : function(data) {
console.log(data);
});
我的问题是当我收到 $_POST 变量的参数时,所有内容都是一个字符串,如 id => "1" 或 value => "12.1"。例如,我希望它们像 Int 和 Float 一样保持不变,而无需在 PHP 端进行额外的转换。
有没有简单的方法来维护变量类型?
【问题讨论】:
-
当 PHP 从提交中接收到值时,它们总是字符串。您将需要在 PHP 中转换它们。
Obj中的数据将像这样发送到服务器:id=1&name=John&value:12.1"。如您所见,PHP 无法知道它应该是什么类型。 -
如果你想保留类型信息,那么你应该将数据作为 JSON 字符串传递给你的服务器,PHP 可以使用
json_decode()来保留变量类型。 -
您还需要修复该 javascript 中的语法错误。
success方法中缺少}