我需要什么
html代码
<a href="#" onclick="peopleattending('.$_COOKIE['user'].', '.$_COOKIE['evnt_id'].');">
js code
<script>
$(document).ready(function()
{
function peopleattending(user_id,event_id)
{
console.log(user_id);
console.log(event_id);
$.ajax({
type:"GET",
url:"{{get_hash_attend(user_id,event_id) }}",
success: function(data)
{
$("#attend").text("Attending");
}
});
}
peopleattending(user_id,event_id);
});
</script>
问题
答案 0 :(得分:2)
user_id
和event_id
仅定义为peopleattending
函数中的参数。当你调用这样的代码时:
peopleattending(user_id,event_id);
你基本上说
peopleattending(undefined,undefined);
您可以在javascript块中的pageload上设置变量,而不是在锚标记的函数参考中
<script>
var _user_id = '<?php $_COOKIE['user'] ?>';
var _event_id = '<?php $_COOKIE['evnt_id'] ?>';
$(document).ready(function()
{
function peopleattending(user_id,event_id)
{
console.log(_user_id);
console.log(_event_id);
$.ajax({
type:"GET",
url:"{{get_hash_attend(user_id,event_id) }}",
success: function(data)
{
$("#attend").text("Attending");
}
});
}
peopleattending(_user_id,_event_id);
});
</script>
然后你的锚标签看起来像这样
<a href="#" onclick="peopleattending(_user_id,_event_id);">
<script>
var _user_id = '{% app.request.cookies.get('user') %}';
var _event_id = '{% app.request.cookies.get('event_id') %}';
我注意到你的问题中有一个拼写错误,evnt_id
而不是event_id
。如果此错误也在您的代码中,那么您需要修复它或在javascript中更改它
如果你的变量是数字而不是字符串,你可以删除引号
<script>
var _user_id = {% app.request.cookies.get('user') %};
var _event_id = {% app.request.cookies.get('event_id') %};
如果您想使用JQuery直接阅读cookie,可以使用Cookie plugin for jQuery
<script>
var _user_id = $.cookie("user");
var _event_id = $.cookie("event_id");
虽然此时你可以删除变量并直接在需要的地方调用$.cookie("user")
。