javascript - 将 php 输出到 javascript 时出现语法错误

标签 javascript php jquery ajax

这是有效的,毕竟这是一个语法错误,但我想知道如何才能做到这一点以使语法正确。

下面的代码是准备在 Ajax 调用上发送的变量的脚本的一部分,因此根据范围,应将相应的变量传递给 Ajax。

从 javascript 的 Angular 来看,问题似乎是只定义了每个作用域的 php 变量。

我认为如果不满足 else if 条件,它根本不会尝试解析,但显然情况并非如此。 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 - 将 php 输出到 javascript 时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36926424/

相关文章:

使用 Codeigniter 进行 PHP 路由(URL 中的标题用于 SEO)

php - 单纯用户的登录控制和管理面板加密

php - MySQL:连接两个具有匹配行名的表

jquery -> 查找元素并导航?

javascript - jQuery Tokeninput 添加多个输入 onClick

javascript - 获取第一个,最后一个,今天的日期

javascript - Adobe Muse 显示 document.createElement 链接,但无法预览

javascript - .replace() 无法删除 <strong> 标签

javascript - jQuery 自动完成验证

javascript - 单击重置按钮后,公司文本字段将被禁用并更改背景颜色