未捕获的语法错误:意外标记非法(PHP和Javascript)

未捕获的语法错误:意外标记非法(PHP和Javascript),php,javascript,html,syntax-error,Php,Javascript,Html,Syntax Error,我仔细研究了一下这个错误,似乎大多数有类似问题的人最终都是隐形角色的受害者。然而,我已经去掉了所有的空白,并手动重新键入了代码,我仍然会遇到这个错误 我选择了导致错误的精确位,代码如下 PHP printf("<td><button class=\"btn btn-primary btn-mini\" onclick=\"viewservice(%s)\">View</button></td>",$RadAcct_List_Obj->User

我仔细研究了一下这个错误,似乎大多数有类似问题的人最终都是隐形角色的受害者。然而,我已经去掉了所有的空白,并手动重新键入了代码,我仍然会遇到这个错误

我选择了导致错误的精确位,代码如下

PHP

printf("<td><button class=\"btn btn-primary btn-mini\" onclick=\"viewservice(%s)\">View</button></td>",$RadAcct_List_Obj->User_List[$i]['USERNAME']);
这将导致未捕获的合成错误。但是,如果我删除%s占位符和结尾处的调用,并将其保留为

printf("<td><button class=\"btn btn-primary btn-mini\" onclick=\"viewservice()\">View</button></td>");
printf(“视图”);
那么它工作得很好。我不明白为什么它在这里失败了,在上面几行我使用了类似的代码(下面),它工作得很好

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

您需要在JS中的字符串文字周围加引号:

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

printf(“您需要在JS中的字符串文字周围加引号:

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

printf(“天哪,谢谢!我问题中的最后一段代码没有在字符串文字周围加引号,这有什么原因吗?(另外,我会在10分钟内接受你最好的答案)。请注意,我刚刚意识到我在传递函数一个字符串,它应该加引号。该死的,我很糟糕。@Matt-随时:)您的上一个代码段之所以有效,是因为它不是Javascript,只是在一个
标记中。在JS中,要指定字符串文字,它需要用引号括起来。例如,
var x='string';
就可以了,
var x=string;
不是。天哪,谢谢!我的问题中的最后一个代码段为什么有效s在字符串文字周围没有引号?(同样,我会在10分钟内接受你的最佳答案)。擦掉它,我才意识到我在传递函数一个字符串,它应该在引号中。该死的,我很糟糕。@Matt-任何时候:)你的上一个代码段都可以工作,因为它不是Javascript,它只是在一个
标记中。在JS中,要指定字符串文字,需要用引号括起来。例如,
varx='string'就可以了,
var x=string不可用。