首页 > 解决方案 > 在 Switch Case PHP 中使用具有不同值的相同代码 Jquery 时出现问题

问题描述

我创建了一个 Switch Case,并希望结果显示相同的 jquery,但根据 Switch 结果显示变量的值!我想不出办法做到这一点,有人有什么想法吗?

一旦我从 Case 得到结果,我就想使用 Jquery 代码!

使用将用于 jquery 值的变量切换案例代码:

switch($_GET['id']){
    case 'hello':
    case 'hi':
    case 'hola':
        $variable = "IsHello";
        break;
    case $id == $row['id']:
        $variable = "IsBye";
        break;
}

将在每种情况下使用的 Jquery 代码:

<script type="text/javascript">
            alert(<?php $variable ?>);
 </script>

标签: javascriptphpjqueryswitch-statement

解决方案


首先,要将 php 变量的值注入到您的 javascript 代码中,您必须显它。

<script type="text/javascript">
    alert('<?php echo $variable ?>');
</script>

您拥有脚本的页面也必须以 php 实际处理它的方式提供。大多数情况下,只要您的文件名为.php ,您的网络服务器就会被配置为执行此操作。

其次,您不能在 switch 语句中将语句作为case语句。您可以有一个默认情况并在其中进行if检查。

switch($_GET['id']){
    case 'hello':
    case 'hi':
    case 'hola':
        $variable = "IsHello";
        break;
    default:
        if($id == $row['id']) {
          $variable = "IsBye";
        }
        break;
}    

更新: 有人告诉我这实际上在 PHP 中是允许的,尽管手册中没有提到它,但PHP7 中的快速测试证实了这一点。该手册实际上特别指出

“在许多情况下,您可能希望将同一个变量(或表达式)与许多不同的值进行比较,并根据它等于哪个来执行不同的代码。这正是 switch 语句的用途。”

这使得允许这样做有点出乎意料(尽管有人可以争辩说一段计算为的代码将符合定义)。但我建议不要将其作为自己的通用编程技术,因为大多数其他语言会用一种奇怪的眼光看待你。


推荐阅读