0

jQuery UI Tabsプラグインを使用しているため、印刷する必要があるこのスクリプトがあり、オプションを渡す必要があるため、PHPファイル内にあります。

ここに私が持っているものがあります:

<?php 
$collapsible = "true";
$active = "2";

$options = array( 'collapsible' => $collapsible, 'active' => $active );
?>
    <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery( '.tabs' ).tabs({
                collapsible : <?php echo $options["collapsible"]; ?>,
                active : <?php echo $options["active"]; ?>
            });
        });
    </script>

わかりましたので、すべてが機能しますが、collapsible と active の 2 つのオプションは影響しません。しかし、php 変数をバイパスして、折りたたみ可能でアクティブなオプション設定をハードコードするだけで機能します。したがって、変数が効果がない理由はわかりません。アクティブの場合は (int) を、折りたたみ可能な場合は (bool) を使用して型キャストを試みましたが、まだダイスはありません。

ご覧いただきありがとうございます。

4

2 に答える 2

2

引用符を追加するのではなく、値を。に通しjson_encodeます。これにより、適切なエスケープも保証されます。

<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery( '.tabs' ).tabs({
            collapsible : <?php echo json_encode($options["collapsible"]) ?>,
            active : <?php echo json_encode($options["active"]) ?>'
        });
    });
</script>

また、PHPのすべての文字列ではなく、リテラル型を使用できるという追加の利点もあります。

<?php
$collapsible = true;
$active = 2;

そして、コメントのaxel.michelの提案ごとに、次のように簡略化できます。

<?php
$options = array('collapsible' => true, 'active' => 2);
?>

<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery( '.tabs' ).tabs(<?php echo json_encode($options); ?>);
    });
</script>
于 2013-02-12T18:39:40.227 に答える
0

値を引用符で囲み、出力をエンコードしてみてください

<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery( '.tabs' ).tabs({
            collapsible : '<?php echo $options["collapsible"] ); ?>',
            active : '<?php echo $options["active"] ); ?>'
        });
    });
</script>
于 2013-02-12T18:38:36.630 に答える