2011-01-06 13 views
2

htmlマークアップからajaxハンドラーに情報を提供する最良の方法を探しています。 シナリオは次のとおりです。データをjavascriptハンドラー

for i=0; i<5; i++ 
print <div class="clickable"></div> 

はのは、div要素がショッピングカートに製品を追加するためにクリックされるとしましょう。同様に

私はそのハンドラにクリックしたその製品の一意のSQL IDを送信したいと思います。

1)1つのアイデアは、そのdivに属性を追加してそこに情報を格納することです。あなたはこの理想についてどう思いますか?

2)HTMLマークアップを使用せずに、これを実現する他の方法はありますか?

info:クライアント側のjquery、サーバー側のPHP、xml-xsl変換が使用されていません。

ありがとうございます!

答えて

3

jQuery metadata pluginあなたはjQueryのdata divの上を使用して、それを保存することができ、プロジェクトのページをご覧ください

+0

この簡単な返信をいただきありがとうございます.htmlとjsはこの方法できれいに見えますが、 – Mark

3

、ちょうどこれらのシナリオ

<?php 
print '<div class="clickable {id: 1}"></div>'; 
// or (HTML5-like) 
print '<div class="clickable" data-id="1"></div>'; 
?> 

// jQuery 
$('.clickable').click(function{ 
    cart.add($(this).metadata().id); 
}) 

のメタデータを提供する他のいくつかの方法がありますがあります。あなたのコメントの使用に対応して

$('.clickable').click(function{ 
    cart.add(jQuery.data($(this), "id")); 
}); 

EDIT

このdataリンク:

あなたはHTML5属性として使用するIDを持つことができます:

<?php 
print '<div class="clickable" data-id="1"></div>'; 
?> 

その後、あなたはそれにアクセスしますIDは次のようにデータを使用します。

$('.clickable').click(function{ 
    cart.add($(this).data("id")); 
}); 

これには、jquery 1.4.3以上が動作する必要があることに注意してください。

+0

はdivがサーバー側にビルドされています。あなたのソリューションはそのdivにいくつかのデータを追加しますが、そのデータを持たなければなりません。だから、どのようにjavascriptがid.elementのJqueryデータとして追加するのか知っていますか? – Mark

+0

@ user527800 - 私の編集を参照 – amurra

関連する問題