2

他のphpページからaoColumnsの値を処理しようとしています。しかし、それは適切に機能していませんが、静的な値を使用すると機能します。私のコードは次のようなものです:phpページで

$aoColumn = array("null","null","null","{bSortable: false}");
<input type="hidden" name="aoColumn" id="aoColumn" value="' . implode(",",$aoColumn) . '">

jsページで

var aos = $('#aoColumn').val();
 var ao = (aos)?aos.split(","):[];
 $.each(ao,function(i){
 });

および dataTable 宣言: "aoColumns":ao

しかし、それは機能していません。問題を教えてください。前もって感謝します。

アップデート

私の場合、aoColumns印刷["null", "null", "null", "{bSortable: false}"]されるはずなのに[null,null,null,Object{bSortable=false}]. どうやってするの?

4

3 に答える 3

1

スクリプトに渡す方法$aoColumnが間違っています。代わりに JSON として渡す必要があります。また、JSON が HTML 内で転送される場合は、適切に HTML エンコードする必要もあります。

$aoColumn = array(null, null, null, array('bSortable' => false));
echo '<input ... value="' . htmlspecialchars(json_encode($aoColumn)).'">';

そして、それをオブジェクトに戻します$.parseJSON:

var aoColumn = $.parseJSON($('#aoColumn').val());

ただし、隠しフィールドを気にする理由がまったくわかりません。構成を JavaScript に直接渡すことができます。

<?php $aoColumn = array(null, null, null, array('bSortable' => false)); ?>

<!-- later on.... -->
<script>
    var aoColumn = <?php echo json_encode($aoColumn); ?>;
</script>
于 2013-08-07T14:34:38.987 に答える