【问题标题】:Uncaught SyntaxError: Unexpected token ILLEGAL (PHP & Javascript)Uncaught SyntaxError: Unexpected token ILLEGAL (PHP & Javascript)
【发布时间】:2013-05-24 08:00:46
【问题描述】:

我对这个错误进行了一些调查,似乎大多数有类似问题的人最终都成为了隐形字符的受害者。但是,我已删除所有空白并手动重新输入代码,但仍然出现此错误。

我已经挑出了导致错误的精确位,代码如下。

PHP

printf("<td><button class=\"btn btn-primary btn-mini\" onclick=\"viewservice(%s)\">View</button></td>",$RadAcct_List_Obj->User_List[$i]['USERNAME']);

Javascript

function viewservice(n)
{
    alert(n);
}

这会导致 Uncaught SyntaxError。但是,如果我删除 %s 占位符和最后的调用,并将其保留为这样

printf("<td><button class=\"btn btn-primary btn-mini\" onclick=\"viewservice()\">View</button></td>");

然后它工作正常。我不明白为什么它在这里失败了,在这上面几行我正在使用类似的代码(下面)并且它工作正常。

printf("<td>%s</td>",$RadAcct_List_Obj->User_List[$i]['USERNAME']);

【问题讨论】:

    标签: php javascript html syntax-error


    【解决方案1】:

    您需要在 JS 中为字符串文字加上引号:

    printf("<td><button class=\"btn btn-primary btn-mini\" onclick=\"viewservice('%s') ... etc
                                                                                 ^  ^
    

    【讨论】:

    • 天哪,谢谢!我的问题中的最后一个 sn-p 代码在字符串文字周围没有引号的情况下有什么原因吗? (另外,我会在 10 分钟内接受你的回答)。从头开始,刚刚意识到我正在向函数传递一个字符串,它应该用引号引起来。该死的,我很糟糕。
    • @Matt - 任何时候 :) 你的最后一个 sn-p 工作,因为它不是 Javascript,它只是在 &lt;td&gt; 标记内。在 JS 中,要指定字符串字面量,需要用引号将其括起来。例如,var x = 'string'; 可以,var x = string; 不行。
    猜你喜欢
    • 2013-06-19
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2011-12-01
    • 1970-01-01
    相关资源
    最近更新 更多