我有以下代码将变量(EmployeeID)从PHP传递到JavaScript:
EmployeeID= <?php echo "$EmployeeID"?>;
问题是PHP中的变量EmployeeID可能不存在,在这种情况下,运行JavaScript代码后,会收到错误消息
未捕获的SyntaxError:意外令牌
当我在开发工具中查看源代码时,可以看到以下内容:
EmployeeID = ;
处理此错误的最佳方法是什么?我尝试过
if (EmployeeID == null){
EmployeeID = "0"; //0 - stands for generic variable in case if EmployeeID doesn't exist
}
任何帮助将不胜感激!
答案 0 :(得分:2)
此php代码输出$EmployeeID
或0
的值,因此当$EmployeeID
的值为假时,您的js var保持为0:
var EmployeeID = <?php echo $EmployeeID ? $EmployeeID : 0 ?>;
答案 1 :(得分:1)
如第一个答案所述,熟练的if是解决这种情况的好方法
<?php echo $EmployeeID ? $EmployeeID : 0 ?>
但是在这种情况下,如果0
的输出将是$EmployeeID == 0, null, false, ''
,在这种情况下,我强烈建议您使用方法“ isset()”,因为可能未声明变量(例如如果employeeID实际上是0)
<?php
if(isset($EmployeeID)){
// Do something here
} else {
// whatever u need
}
的更多参考
答案 2 :(得分:0)
因此,其他答案对于我认为是数字值的方法可能效果很好,但是如果您有文本值,则需要确保可以正确地将其转义为JavaScript。 import * as MyAssets from "./assets"
十分适合。我会做这样的事情:
json_encode()
这将确保正确地转义任何文本,并且null coalesce operator为您提供默认值,而不会在未定义变量的情况下触发通知,以防该变量没有值。