将数组从javascript格式化为php的更好方法,反之亦然

Better way of formatting arrays from javascript to php and vice versa?

本文关键字:更好 方法 反之亦然 php 数组 javascript 格式化      更新时间:2023-09-26

我正在创建一个页面,用于读取、写入和修改mysql数据库中的数据。我使用带有codeigniter的php来执行查询,但是用户将看到的页面我使用javascript来提供动力,根据用户的选择动态填充和更改数据。为此,我将大量数据从php来回传递给javascript函数,反之亦然,但我想知道是否有更好的方法来格式化数据。例如,这里有一个javascript函数,它使用XMLHttpRequest调用php函数并获得结果:

var myarray = new Array(2);
myarray[0] = document.getElementById("my_input").value;
myarray[1] = document.getElementById("my_select").value;
xmlhttp.open("POST", "my_url/my_function/"+myarray.join('|'), false);
xmlhttp.send();
document.getElementById("my_element").innerHTML=xmlhttp.responseText;

我只需对传递给php函数的字符串执行explode(),然后执行必要的查询。这似乎是php和javascript之间非常尴尬的交互。有更好的方法,或者至少有不同的方法吗?

JSON(JavaScript对象表示法)似乎就是您想要的。您可以使用JSON.stringify将几乎所有类型的Javascript变量转换为字符串,然后使用JSON_decode在php中恢复原始结构,反之亦然,使用JSON_encode和JSON.parse.

参见:

  • JSON上的PHP文档
  • JSON上的MDN Javascript文档