Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在切换案例PHP中使用相同代码Jquery和不同值时出现问题_Javascript_Php_Jquery_Switch Statement - Fatal编程技术网

Javascript 在切换案例PHP中使用相同代码Jquery和不同值时出现问题

Javascript 在切换案例PHP中使用相同代码Jquery和不同值时出现问题,javascript,php,jquery,switch-statement,Javascript,Php,Jquery,Switch Statement,我创建了一个Switch Case,并希望结果显示相同的jquery,但根据Switch结果使用变量值!我想不出一个办法来做这件事,有人有什么想法吗 我想在从Case得到结果后立即使用Jquery代码 带有将用于jquery值的变量的开关大小写代码: switch($_GET['id']){ case 'hello': case 'hi': case 'hola': $variable = "IsHello"; break; cas

我创建了一个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>

警惕();

首先,要将php变量的值注入javascript代码中,必须对其进行修改

更新:我被告知这在PHP中实际上是允许的,尽管在PHP中没有提到,但PHP7中的一个快速测试证实了这一点。手册实际上特别说明

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


这使得允许这样做有点出乎意料(尽管有人可能会认为,一段计算结果为值的代码将符合定义)。但是我建议不要让这成为一种常见的编程技术,因为大多数其他语言都会以一种奇怪的眼光看待您。

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


警报(“”);

这只是javascript,不是jquery;)
case$id==$row['id']
在哪里设置了
$id
$row
设置在哪里?我刚得到感兴趣的代码case$id==$row['id']:??我想它不会工作这是工作,我使用这个变量id以外的开关,它是工作的,我已经测试过了!“您不能在switch语句中使用语句作为case”是否确定?这肯定是不寻常的,但我不认为这是不允许的。基本上在所有语言中都适用。例如,它使得将switch语句转换为assembly等变得非常简单。允许代码成为您检查的对象将使这变得更加复杂。我认为PHP也是如此。唯一的问题是我在echo中加了引号,但它不起作用,谢谢:)但我不能将此代码设置为默认值,因为我必须检查id是否与数据库中的id相同,$row变量会检查数据库@inquam我很微妙,但更直接地说,OP的方式在PHP中是允许的。不过,和其他许多情况一样,仅仅因为PHP允许您这样做,并不意味着这是一个好主意。@PatrickQ:哇,这并不例外。我从v4之前就开始使用PHP,我从来没有想到这是允许的。我想,如果您使用这种方法,那么对php来说,优化预编译字节码将变得更加困难。仍然不能摇动你可以这样做:P
<script type="text/javascript">
    alert('<?php echo $variable ?>');
</script>
switch($_GET['id']){
    case 'hello':
    case 'hi':
    case 'hola':
        $variable = "IsHello";
        break;
    default:
        if($id == $row['id']) {
          $variable = "IsBye";
        }
        break;
}    
<script type="text/javascript">
    alert("<?php echo addslashes($variable) ?>");
</script>