2

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

非常感谢您的帮助!

4

2 回答 2

4

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

$imgArray = array('img1.jpg', 'img2.jpg', etc);
echo 'var imgArray = ' . json_encode($imgArray);
于 2012-10-25T18:48:19.250 回答
1

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

你应该写var phpvar1_large = <?php echo json_encode($var1_large); ?>;

不客气!

于 2012-10-25T18:52:14.783 回答