Javascript 在切换案例PHP中使用相同代码Jquery和不同值时出现问题
我创建了一个Switch Case,并希望结果显示相同的jquery,但根据Switch结果使用变量值!我想不出一个办法来做这件事,有人有什么想法吗 我想在从Case得到结果后立即使用Jquery代码 带有将用于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($_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>