SyntaxError:在Firebug中的数字文字后立即启动标识符

时间:2013-02-19 19:51:18

标签: javascript firebug

当我调用这个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>';

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

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

2 个答案:

答案 0 :(得分:16)

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


我猜它来自这个:

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

如果你想传递一个字符串,那么你需要引用传递的值。

// ----------------v-------------------------v
onClick="kickUser(\"'.$rowUsers['id_user'].'\")">Kick</a>

我不知道PHP,所以也许你需要不同的转义,但这就是这个想法。

答案 1 :(得分:1)

生成的JavaScript代码将是

kickUser(userName)

...显然没有js变量userName。您想要传递一个字符串:

kickUser('userName');

所以将引号/撇号添加到输出中,并且不要忘记正确地转义$rowUsers['userName']。它对于$rowUsers['id_user']来说是完全相同的,它似乎甚至输出了无效的标识符。