将数据从php传递给Jquery

我将所有javascript / jquery代码放在一个文件中,并将其包含在我的页面中。 没有apache进程js文件作为php什么是将数据从PHP传递到我的js脚本的最佳方法? 现在我在我的页面上有一个隐藏的div,我回显了一个值然后使用jquery我得到文本内容然后拆分它以获取变量。 这是一个很好的方法吗? 或者,还有更好的方法?

UPDATE

如前所述,我所有的js代码都在我包含在网页中的.js文件中。 在这种情况下我可以使用php的唯一方法是告诉apache将.js文件视为php,这样它就会重新识别.js文件中的php代码。 我不想这样做。

HTML

data1data2

JS

 var pagedata = $('#pagedata').text(); var break_data = pagedata.split(''); 

Matt在上面的评论中提到了最佳实践:使用JSON。 如果您要使用jQuery,可以使用$.get()$.getJSON()调用PHP脚本。 你可以在这里找到PHP JSON的手册: http://php.net/manual/en/book.json.php ,以及jQuery方法的$.getJSON()的API参考: http://api.jquery .COM / jQuery.getJSON /

HTH。

你为什么不直接使用php渲染javascript(如JSON),然后你可以将它本身用于jQuery。

  

编辑:

如果你不想在你的php页面中有内联js,并且不希望apache将js作为php处理,那么也许你可以src一个包含js的php文件。

  

并且在php文件里面有js

 var data = ; 

要么

只是jQuery使用ajax jQuery.get(“php_url.php”)调用php webservice,再次在那个php脚本中你渲染一些json。

您可以直接填充javascript,而不是从潜水中获取数据:

 var pagedata = ''; var break_data = pagedata.split('<>'); 

您应该实际回应JavaScript代码,而不是错误地使用HTML来传递数据(必须进行解析)。 例如,PHP可以生成:

  

由于这是在页面的全局范围内声明的,因此您的脚本实际上可以访问这些变量。

你唯一需要注意的是比赛条件。 在定义数据后,您的脚本必须执行。 但是,使用标准的jquery on-dom-ready回调不是问题。

HTML

  

json_encode应该已经在PHP 5.2中。 否则请看http://www.json.org/

JS

 var master = JSON.parse( $('pagedata').html() ); // master.data1; // single // master.data2[0]; // 2a // master.data2[1]; // 2b 

要使用JSON.parse,您需要来自https://github.com/douglascrockford/JSON-js的 json2.js。

将JS变量和对象与数据相结合是个好主意,但另一种方法是通过内部jQuery存储来管理它们$ .data()

对于非平凡的UI,优势显而易见:

  • 您可以使用DOM对象作为命名空间
  • 封装内部数据
  • 逻辑和对象是“孤立的”

JS

 var pagedata = jQuery.data( document.body, ''); var break_data = JSON.parge(pagedata)