在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>

首先,要将php变量的值注入到javascript代码中,必须对其进行回显。

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

脚本所在的页面也必须以php实际处理它的方式提供。通常情况下,只要您的文件名为.php.,您的Web服务器就会被配置为执行此操作

其次,在switch语句中不能将语句作为大小写。您可以有一个默认案例,并在中进行检查。

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

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

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

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

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

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

最新更新