将 PHP 输出到 JavaScript 时出现语法错误
syntax error when outputting php to javascript
这是有效的,毕竟这是一个语法错误,但我想知道如何做到这一点以使语法正确。
下面的代码是准备在 Ajax 调用中发送的变量的脚本的一部分,因此根据作用域,应将相应的变量传递给 Ajax。
从javascript的角度来看,问题似乎是只定义了每个范围的php变量。
我认为如果不满足条件,它根本不会尝试解析 else 的情况,但显然情况并非如此。始终定义 php 变量$scope。
Firebug 和 Chrome 开发者工具都抛出了错误:
var scope_var = <br />
<b>Notice</b>: Undefined variable: brand in <b>/Applications/MAMP/htdocs/my_site/my_script.php</b> on line <b>1049</b><br />null;
谢谢
var scope = <?php echo json_encode($scope) ;?>;
if (scope == 'all') {var scope_var = 'all';}
else if (scope == 'brands') {var scope_var = <?php echo json_encode($brand) ;?>;}
else if (scope == 'cities') {var scope_var = <?php echo json_encode($city) ;?>;}
else if (scope == 'models') {var scope_var = <?php echo json_encode($model) ;?>;}
else if (scope == 'prange') {var scope_var = <?php echo json_encode($used_prange_low) . '|' . json_encode($used_prange_high) ;?>;}
从代码的外观来看,您正在将要从 PHP 输出的值转换为 JS,以作为字符串接收。如果是这种情况,您需要将所有 PHP 语句括在引号中。试试这个:
var scope = '<?php echo json_encode($scope); ?>';
if (scope == 'all') {
var scope_var = 'all';
} else if (scope == 'brands') {
var scope_var = '<?php echo json_encode($brand); ?>';
} else if (scope == 'cities') {
var scope_var = '<?php echo json_encode($city); ?>';
} else if (scope == 'models') {
var scope_var = '<?php echo json_encode($model); ?>';
} else if (scope == 'prange') {
var scope_var = '<?php echo json_encode($used_prange_low) . ' | ' . json_encode($used_prange_high); ?>';
}
另请注意,switch
声明可能比多个else if
条件更适合您的需求。
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- Javascript未捕获语法错误意外的标识符错误
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 未捕获的语法错误:意外的标记{
- "未捕获的语法错误:意外的标记}"
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- $(input[]).仅在firefox中出现每个抛出语法错误
- 为什么浏览器没有为语法错误抛出异常
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 未捕获的语法错误:意外的令牌,
- jQuery.getJSON失败,语法错误
- "未捕获的语法错误:意外的标记"角度JS
- 参数列表Three.js之后的未捕获语法错误:缺少)
- 循环的Javascript冻结浏览器,没有语法错误
- 为什么匿名函数本身就是javascript中的语法错误
- 这怎么不是语法错误?这毫无意义!(javascript)
- 语法错误:缺少:在属性 ID 之后
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]