它调用函数: function ajax_update_entries(player_name) { $.post('http://-6ren">
gpt4 book ai didi

php - 带有变量的 Ajax 函数

转载 作者:行者123 更新时间:2023-11-28 16:09:29 24 4
gpt4 key购买 nike

我有一个带有“onclick”选项的表格和字段:

<td class="name" onclick="ajax_update_entries('<?php echo $field['Player']['name']; ?>')">

它调用函数:

function ajax_update_entries(player_name)
{
$.post('http://mysite.com/entries/get_entries/' + player_name, function(data)
{
$('#gameText').html(data);
});
setTimeout('ajax_update_entries(player_name)', 30000);
}

它的优点是单击表字段后将进入请求的页面。它做错了什么,它无法识别 setTimeout 中的“player_name”参数,该参数应该刷新它。在 Opera 控制台中它返回:

Uncaught exception: ReferenceError: Undefined variable: player_name

IE 表示没有“player_name”的定义。

但另一方面,如果我选择:

setTimeout('ajax_update_entries("Michael Jordan")', 30000);

它可以工作,并将使用参数刷新页面:Michael Jordan。

所以我的问题是:这个脚本有什么问题?我的意思是,为什么变量 player_name 突然被忘记了?如何解决?

最佳答案

您需要这个:

setTimeout(function() {
ajax_update_entries(player_name);
}, 30000);

变量没有被忘记,问题是您将函数调用作为字符串传递给setTimeout。然后发生的情况是,它会在没有原始上下文的情况下执行 eval (顺便说一下,即 not good ),因此 javascript 解释器不知道要传递什么。因此出现错误。

关于php - 带有变量的 Ajax 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13517608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com