如何通过ajax在对象内部保留变量类型?

时间:2019-07-03 15:26:53

标签: php jquery ajax

我正在将一个对象通过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方面进行额外的转换。

是否有一种简单的方法来维护变量类型?

2 个答案:

答案 0 :(得分:1)

您需要在PHP上转换值,因为PHP会将值作为字符串接收:

$data = $_POST['data'] ; 

$int = (int)$data['id']; // or   intval($data['id'])
$float = (float)$data['value']; // or  floatval($data['value'])

答案 1 :(得分:0)

  

是否有一种简单的方法来维护变量类型?

不是。用于发送数据的数据格式没有任何类型的提示。

您可以改用JSON。

发送时,您必须先encode the data as JSON,然后explicitly decode it in PHP