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経由で書いているブール値がブール値ではなく文字列として解釈されていることだと確信しています。そのため、常にfalseとして評価されます。

あなたは書くべきですvar phpvar1_large = <?php echo json_encode($var1_large); ?>;

どういたしまして!

于 2012-10-25T18:52:14.783 に答える