外部js php变量,在外部JS文件中包含PHP变量?

我的解决方案结合了几种技术,其中一些已经在这个问题的答案中提到过.

是的,将PHP与JS分开

首先:是的,你应该将你的JS与PHP分开.您可以将其放在单独的文件中,但是您需要对当前代码进行一些更改.不要动态生成JS文件 – 它实际上杀死了将JS代码分离到单独文件(你不能缓存它等)的优点.

公共变量作为全局变量/函数参数

接下来,将您的公共变量作为全局变量存储在HTML文件的标题中(尽管还有其他选择,您实际上没有太多选择),最好分组在一个对象中:

var Globals = <?php echo json_encode(array(

'active_user_id' => $active_user->id,

'token' => $token,

'hash' => $hash,

)); ?>;

或者,您可以将所有这些作为参数传递给您将调用的函数,但我假设您也在脚本的其他位置使用它们.

存储在数据属性中的容器相关数据

然后使用数据属性存储与容器关联的实际数据.你不需要post1 / post2 / post3类和单独的事件处理程序:

here is something

而不是例如:

here is something

如何从外部JS文件中读取全局变量和数据属性

然后你的JavaScript可能看起来像:

$(document).ready(function(){

$('[data-post-id]').click(function() {

var el = $(this);

var data = {

'post_id': el.data('post-id'),

'user_id': Globals.active_user_id

};

data[Globals.token] = Globals.hash;

$.ajax({

'type': 'POST',

'url': 'http://domain.com/ajax/add_love',

'data': data,

'dataType': 'json',

'success': function(response) {

el.html(response.total_loves).toggleClass('loved');

}

});

return false;

});

});

这应该足够了(虽然我没有测试它).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值