将数据从PHP应用程序传递到JS的正确方法是什么?

时间:2017-07-06 16:50:09

标签: javascript php jquery

假设我想打开一个PHP页面而没有其他请求,将一些JSON数据直接传递给浏览器,因此我的Javascript函数可以访问它。

我不知道这样做的正确方法,但我现在所做的是这样的事情:

<textarea id="mydata" style:"display:none">[{code:1,name:'John'},{code:2,name:'Mary'},{code:3,name:'Paul'}]</textarea>

我将数据放在一个不可见的文本区域中,现在“mydata”textarea中的数据可以被JS访问,如下所示:

var myData = JSON.parse($('#mydata').val());

虽然这样可行,但在某种程度上我似乎没有正确的方法...我知道我可以通过在页面打开后使用Ajax获取数据来避免“弄脏”html代码,但是我的意思是我试图在这里做的是避免更多的请求,所以只有一个请求,一切都将是可访问的。实际上在我的应用程序中我有大约5个这样的textareas,所以只有1个服务器请求我得到所需的所有数据。

由于

1 个答案:

答案 0 :(得分:2)

从PHP的角度来看,这没有区别:

<textarea id="mydata" style:"display:none">[{code:1,name:'John'},{code:2,name:'Mary'},{code:3,name:'Paul'}]</textarea>

和此:

var myData = [{code:1,name:'John'},{code:2,name:'Mary'},{code:3,name:'Paul'}];

以上两种都采用以下形式:

[a string][the serialized object][a string]

无论您是使用HTML还是使用JavaScript来围绕这些值,围绕装饰只是PHP的原始输出字符串。因此,不需要添加将JSON输出到表单元素的额外步骤,然后使用JavaScript将表单元素的值作为字符串获取并将其解析回对象。您可以直接将对象本身发送到JavaScript代码。