jRatingと呼ばれる素敵なプラグインを使用しようとしています。これは、星をクリックすると何らかの AJAX 呼び出しを行うと思われます。正しいレート値でそれdata-id
を行いますが、AJAX で呼び出されたファイルの MySQL クエリへの入力となる属性は未定義 (NaN) です。これはコードです:
デモ HTML :
<div class="exemple">
<!-- in this exemple, 12 is the average and 1 is the id of the line to update in DB -->
<div class="basic" data-average="12" data-id="1"></div>
</div>
//Line 60:
//idBox = parseInt($(this).attr('data-id')), // old version, idBox=Nan
idBox = parseInt($(this).data("id")); // my version, still idBox=Nan
edit : メイン PHP ページのヘッダーでの jquery 呼び出し:
<script type="text/javascript">
$(document).ready(function(){
$(".exemple").jRating({
length:10,
decimalLength:0,
onSuccess : function(){
alert('Success : your rate has been saved :)');
},
onError : function(){
alert('Error : please retry');
}
});
});
</script>
何が悪いのかわからないようです。見つけるのを手伝ってください。ありがとう !
解決策:
@ZachL が認識し
$(this)
たように、jRating.jquery.js の は div.exemple を参照していましたが、data-id は div.basic にありました。
そのため、機能するように変更$(this).data("id")
し$(this).find('.basic').data("id")
ました。