2010-12-29 7 views
0

私はこの問題の最適な解決策を見つけたことはありませんでしたので、あなたのうちの何人かにはいくつかの解決策があることを期待しています。クライアント側のスクリプトでのみ使用されるサーバーからデータを発信するためにどのようなテクニックを使用しますか?

私はチェックボックスのリストをレンダリングする必要があり、各チェックボックスにはそれに付随する一連の追加データがあるとします。このデータは、純粋にjavascriptおよびjqueryのコンテキストで使用されます。私の通常の戦略は、このデータをチェックボックスと同じコンテナにグループ化された隠しフィールドにレンダリングすることです。

私のレンダリングされたHTMLは次のようになります:

<div> 
    <input type="checkbox" /> 
    <input type="hidden" class="genreId" /> 
    <input type="hidden" class="titleId" /> 
</div> 

これで私の唯一の問題は、フォームが送信されたときに非表示フィールド内のデータがサーバーにポストしてしまうことがあります。少量のデータに対しては、これは問題ありません。しかし、私は大規模なデータセットで頻繁に作業し、大量のデータは不必要に転送されます。

UPDATE:この投稿を送信する前に、データの送信を抑止するために、入力要素に「DISABLED」属性を追加できることがわかりました。これは私が取ることができる最良のアプローチですか?

おかげ

答えて

0

誰かがこれを読んでいて、解決策に興味がある場合は、HTML5カスタムデータ属性を使用できます。私はHTML5はまだ作業中のドラフトであることを知っていますが、このコンセプトは承認されたようです。これにより、データを問題の要素に強く結びつけることができます。私の問題の場合、チェックボックスで隠しフィールドをグループ化するのではなく、genreIdとtitleIdを直接チェックボックスに関連付けることができます。正確に画期的なものではありませんが、カスタム属性が仕様の一部になっていることを知ってうれしいです。

例:

詳細はこちらからの提案のための http://dev.w3.org/html5/spec/Overview.html#custom-data-attribute

1

なぜJSON文字列に(何らかの形で)あなたのデータを変換し、JavaScript変数の中にそれをエコーし​​ませんか?それで、あなたが望むものは何でもできますし、あなたのフォームの提出物と共にあらゆる種類の余分なパラメータを送信しているわけではありません。 、ASPでJSON形式にオブジェクトを変換するには詳細情報については

<script type="text/javascript"> 
    var data = <?php echo json_encode($data) ?>; 
</script> 

これらのリンクをチェックアウト:PHPでは、これは次のようになり

Any good libraries for parsing JSON in Classic ASP?

http://code.google.com/p/aspjson/

+0

感謝。私は、サーバーからクライアント側の変数を発行する必要はありませんが、これは私にもっと便利な方法でデータをどのように構造化できるかについて私にいくつかのアイデアを与えてくれます。 – chuck

0

うん。 jsonを使用することもできますし、単にjQuery.data < http://api.jquery.com/jQuery.data/>を使用することもできます。あなたが望む要素にいくつかの値を格納します。

+0

ニースfind。私はこれまで見たことがなかった。もちろん、これは最初にASPデータをJavaScriptに変換する問題を解決するものではありませんが、そこにいったん設定すると便利なツールになるでしょう。 – treeface