【问题标题】:Problem when using same code Jquery with different values in Switch Case PHP在 Switch Case PHP 中使用具有不同值的相同代码 Jquery 时出现问题
【发布时间】:2019-06-05 13:39:59
【问题描述】:

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

我想在得到 Case 的结果后立即使用 Jquery 代码!

带有将用于 jquery 值的变量的 Switch Case 代码:

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>

【问题讨论】:

  • 这只是 javascript,不是 jquery ;)
  • case $id == $row['id'] $id 设置在哪里? $row 设置在哪里?
  • 我刚拿到感兴趣的代码
  • case $id == $row['id']: ??我认为这行不通
  • 这行得通,我在交换机外使用这个变量 id,它行得通,我已经测试过了!

标签: javascript php jquery switch-statement


【解决方案1】:

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

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

您拥有脚本的页面也必须以 php 实际处理它的方式提供。大多数情况下,只要您的文件名为 .php.

,您的网络服务器就会被配置为执行此操作

其次,您不能在 switch 语句中将语句作为 case。 您可以有一个 default 案例并在其中进行 if 检查。

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

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

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

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

【讨论】:

  • "您不能在 switch 语句中将语句作为 case" 您确定吗?这绝对是不寻常的,但我不认为这是不允许的。
  • 基本上在所有语言中都适用。例如,它可以非常直接地将 switch 语句转换为汇编等。允许代码成为您检查的情况会使这变得更加复杂。我认为 PHP 也是如此。
  • 唯一的问题是我在 echo 中加了引号,但没有用,谢谢 :) 但我不能把这段代码默认,因为我必须检查 id和在数据库中找到的一样,$ row 变量检查数据库!
  • @inquam 我很微妙,但更直接地说,OP 的方式 在 PHP 中是允许的。就像在许多其他情况下一样,仅仅因为 PHP 允许您这样做,并不意味着它是一个好主意。
  • @PatrickQ:哇,没想到。而且我从 v4 之前就一直在使用 PHP,并且永远不会猜到这是允许的。我猜想如果你使用它,它会使 php 的预编译字节码更难优化。仍然不能动摇你可以这样做:P
【解决方案2】:

您应该在 php 输出周围添加引号并转义引号(并且不要忘记 echo 变量):

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多