Javascript 将数据从php传递到Jquery
我将所有javascript/jquery代码都放在一个文件中,并将其包含到我的页面中。如果没有将apache处理js文件作为php,那么将数据从php传递到我的js脚本的最佳方式是什么?现在我的页面上有一个隐藏的div,我回显一个值,然后使用jquery获取文本内容,然后拆分它以获取变量。这是一个好的方法吗?还是有更好的办法 更新 如前所述,我的所有js代码都在一个.js文件中,我将其包含在网页中。在这个场景中,我可以使用php的唯一方法是告诉apache将.js文件视为php,这样它就可以重新识别.js文件中的php代码。我不想这样做 HTMLJavascript 将数据从php传递到Jquery,javascript,jquery,Javascript,Jquery,我将所有javascript/jquery代码都放在一个文件中,并将其包含到我的页面中。如果没有将apache处理js文件作为php,那么将数据从php传递到我的js脚本的最佳方式是什么?现在我的页面上有一个隐藏的div,我回显一个值,然后使用jquery获取文本内容,然后拆分它以获取变量。这是一个好的方法吗?还是有更好的办法 更新 如前所述,我的所有js代码都在一个.js文件中,我将其包含在网页中。在这个场景中,我可以使用php的唯一方法是告诉apache将.js文件视为php,这样它就可以重
<div id="pagedata" style="display:none;">data1<>data2</div>
data1data2
JS
var pagedata = $('#pagedata').text();
var break_data = pagedata.split('<>');
var pagedata = jQuery.data( document.body, '<? echo json_encode($var); ?>');
var break_data = JSON.parge(pagedata)
var pagedata=$('#pagedata').text();
var break_data=pagedata.split(“”);
您可以直接将javascript填充为:
var pagedata = '<?php echo $somevariable; ?>';
var break_data = pagedata.split('<>');
var pagedata='';
var break_data=pagedata.split(“”);
您应该实际回显JavaScript代码,而不是错误地使用HTML传递数据(必须对其进行解析)。例如,PHP可以生成:
<script type="text/javascript">
var data1 = "data1";
var data1 = "data2";
</script>
var data1=“data1”;
var data1=“data2”;
由于这是在页面的全局范围内声明的,所以脚本实际上可以访问这些变量
你唯一需要注意的是比赛条件。您的脚本必须在定义数据后执行。但是,使用标准的jquery on dom ready回调并不成问题。为什么不让php直接呈现javascript(作为JSON),然后jquery就可以使用它了
<script>
var data = {my: 'data', goes: 'here', <? echo render_more_of_my_data(); ?> };
</script>
var data={my:'data',goes:'here',};
编辑:
如果您不想在php页面中使用内联js,也不想让apache将js作为php处理,那么您可以src一个包含js的php文件
<script src="my_php_file.php">
在php文件中有js
var data = <? echo render_my_data(); ?>;
var数据=;
或
只需jQuery使用ajaxjquery.get(“php_url.php”)调用一个php Web服务,然后在php脚本中再次呈现一些json 最佳实践可能正如Matt在上面的评论中提到的那样:使用JSON。如果要使用jQuery,可以使用
$.get()
或$.getJSON()
调用PHP脚本。您可以在这里找到PHP JSON的手册:,并在这里找到jQuery方法$.getJSON()
的API参考:
HTH.HTML
<div id="pagedata" style="display:none;">
<?
$master['data1'] = 'single';
$master['data2'] = array('2a', '2b');
echo json_encode($master); ?>
</div>
要使用JSON.parse,您需要从这里开始使用json2.js。最好将js变量和对象与数据一起使用,但另一种方法是通过内部jQuery存储来管理它们。$.data() 对于非平凡的UI来说,优势是显而易见的:
- 可以将DOM对象用作命名空间
- 内部数据的封装
- 逻辑和对象是“隔离的”
var pagedata = $('#pagedata').text();
var break_data = pagedata.split('<>');
var pagedata = jQuery.data( document.body, '<? echo json_encode($var); ?>');
var break_data = JSON.parge(pagedata)
var pagedata=jQuery.data(document.body');
var break_data=JSON.parge(pagedata)
您好,json始终是一个不错的选择。PHP有一个编码为json的函数,然后可以从javascript对其进行解码。如果它只是一个变量,你可以随时回显它。类似于echo'var data1=”。$somephpvariable
如果js代码位于页面中包含的文件中,则此代码的可能副本将不起作用,除非我告诉apache将js文件作为php处理,这是我不想要的。那么最好的方法就是编写一个脚本,每次都在光盘上写入js文件。同样,我不能在外部js文件中使用php代码。我必须将apache进程js文件作为apache,这样才能工作。如果我在上面运行您的代码,它将出错。我不想将js内联添加到我的页面,我想将其作为包含在我的网页中的文件保留。我不是说将其回显到外部js文件,而是回显到您的HTML页面。这就是关于它是全局作用域的解释。我不想在我的页面中使用内联js代码。但我们将研究这一选择。