4

当我调用这个 javascript 函数时,我得到了这个错误:

function kickUser(id_userChat){
$.post("chatFuncs.php", { action: "kick", id_user: id_userChat });  
}

这个“kickUser”函​​数是为每个连接到我的聊天框的用户生成的,像这样

$listUsers .= '<img src="imgUsers/'.$DBClass->nomImg($rowUsers['id_user'],$posImg).'" height="'.$heightImg.'" width="'.$widhImg.'"/>
<span class="styleMsg">'.$rowUser['nameUser'].'</span>&nbsp;
<a href="#" class="BtnKick" onClick="kickUser('.$rowUsers['id_user'].')">Kick</a></br>';

并且“踢”动作只是对我的数据库的更新,我在其中从我的 chatUsers 表中删除了用户

如果我将 $rowUsers['id_user'] 更改为 $rowUsers['userName'],则错误更改为: ReferenceError: 'userName' is not defined(我仅为此示例更改了 'userName' 的用户真实姓名)。

4

2 回答 2

16

JavaScript 中的标识符不能以数字开头;它们必须以字母开头,$_.


我猜它来自这个:

onclick="kick_user('.$rowUsers['id_user'].')">Kick</a>

如果您的意思是传递一个字符串,那么您需要引用正在传递的值。

onclick="kick_user(\"'.$rowUsers['id_user'].'\")">Kick</a>

我不知道 PHP,所以也许你需要不同的转义,但这应该给你的想法。

于 2013-02-19T20:02:43.320 回答
1

生成的 JavaScript 代码将是

kickUser(userName)

…显然没有 js 变量userName。你想传递一个字符串:

kickUser('userName');

因此,将引号/撇号添加到输出中,并且不要忘记$rowUsers['userName']正确转义。与 for 完全一样$rowUsers['id_user'],它似乎甚至输出了一个无效的标识符。

于 2013-02-19T20:04:24.320 回答