【问题标题】:Simplest Javascript If-statement not working最简单的 Javascript If 语句不起作用
【发布时间】:2012-10-25 18:46:20
【问题描述】:

我想在 javascript 中检查一个 php 变量并相应地创建一个数组。

我试过了,但它不起作用:

<script language="Javascript" type="text/javascript">
            var phpvar1_large = <?php echo $var1_large ?>; 
            var phpvar2_large = <?php echo $var2_large ?>; 
            var phpvar3_large = <?php echo $var3_large ?>; 
            var phpvar4_large = <?php echo $var4_large ?>; 

            if(!phpvar1_large){
            var imgArray = new Array(
                '<?=$main_img; ?>'
                );
            }else if(!phpvar2_large){
                var imgArray = new Array(
                '<?=$main_img; ?>',
                '<?=$var1_large; ?>'
                );
            }else if(!phpvar3_large){
            var imgArray = new Array(
                '<?=$main_img; ?>',
                '<?=$var1_large; ?>',
                '<?=$var2_large; ?>',
                '<?=$var3_large; ?>'
                );
            }else if(!phpvar4_large){
                var imgArray = new Array(
                '<?=$main_img; ?>',
                '<?=$var1_large; ?>',
                '<?=$var2_large; ?>',
                '<?=$var3_large; ?>'
                );
            }else if(phpvar4_large){
            var imgArray = new Array(
                '<?=$main_img; ?>',
                '<?=$var1_large; ?>',
                '<?=$var2_large; ?>',
                '<?=$var3_large; ?>',
                '<?=$var4_large; ?>'
            );
            }
</script>

但是,如果我不使用 if 语句,则数组创建正确:

<script language="Javascript" type="text/javascript">
            var imgArray = new Array(
                '<?=$main_img; ?>',
                '<?=$var1_large; ?>',
                '<?=$var2_large; ?>',
                '<?=$var3_large; ?>',
                '<?=$var4_large; ?>'
            );
</script>

非常感谢您的帮助!

【问题讨论】:

  • 请发布生成的 HTML,而不是 PHP。
  • 在这种情况下,switch case 在语义上更合适
  • @Asad,这里不适合使用 switch case。首先简单地处理一个适当的数组是要走的路。
  • 你真的应该在服务器端处理这些情况
  • @Brad switch 构造是专门为需要根据单个变量的值执行一组不同的语句而设计的。它在语义上比使用多个 if/elseif 更合适。这与他是否应该使用适当的数组无关,我同意。

标签: php javascript if-statement


【解决方案1】:

我强烈建议您对数组进行简单的 JSON 编码。

$imgArray = array('img1.jpg', 'img2.jpg', etc);
echo 'var imgArray = ' . json_encode($imgArray);

【讨论】:

    【解决方案2】:

    我很确定您的问题是您通过 php 编写的布尔值没有被解释为布尔值而是字符串,这就是为什么它总是被评估为假的原因。

    你应该写var phpvar1_large = &lt;?php echo json_encode($var1_large); ?&gt;;

    不客气!

    【讨论】:

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