2

rate を Web サイトに実装しようとしています。わずかな問題を除いて、プラグインは動作しています。スコア変数をphpスクリプトに渡すことができないため、評価値をデータベースに保存することができません。これは私のコードです:

<div id="star" onclick="javascript:rateMe()"></div><br /><br />
<div id="hint"></div><br />
<script type="text/javascript" src="scripts/js/jquery.raty.min.js"></script>
<script type="text/javascript">

$('#star').raty({
 half  : true,
 number: 10,
 score : 5,
 cancel     : true,
 cancelHint : 'none',
 target     : '#hint',
 targetKeep   : true
});

</script>

そして、データベースにデータを取得するためのポスト関数は次のとおりです。

function rateMe(score) {
                $.post('scripts/php/rater.php',{score:score, userid:<?php echo $memid; ?> },function(data){alert(data+' Score = '+score);
                });         
} 

私の PHP スクリプトは問題なく、データはスコア自体とは別に投稿されています! 上記のコードのどこかに、何かが欠けています。私のアラートは、null であるスコアを参照する変数を除いて、すべての変数を正しく返し、アラートの最後の部分は「スコア = 未定義」として返されます。onclick="javascript:rateMe(score)" を使用してみましたが、データを投稿することさえできず、アラートも表示されません。

私が間違っていることを知りたいです。関数の外でスコア変数を宣言しようとしました。関数にクリック イベントを追加しました。ドキュメントのようにスコア変数の名前を変更しようとしました。関数を $(document).ready 関数内に配置しようとしました。 () {...} タグ、およびコードのレート部分...役に立ちません。何か助けていただければ幸いです...私はjavascriptの初心者で、クックブックを検索していますが、答えが見つかりません。スコア変数がphpスクリプトに渡されない理由を誰かが理解するのを手伝ってくれるなら、私は永遠に感謝します. ありがとう :)

4

1 に答える 1

7

rate オブジェクトのオプションにクリック ハンドラーを配置してみてください。

<div id="star"></div><br /><br />
<div id="hint"></div><br />
<script src="lib/jquery-1.7.2.js" type="text/javascript"></script>
<script type="text/javascript" src="lib/raty.js"></script>
<script type="text/javascript">

    $('#star').raty({
        half  : true,
        number: 10,
        score : 5,
        cancel     : true,
        cancelHint : 'none',
        target     : '#hint',
        targetKeep   : true,
        click: function(score, evt) {
            $.post('raty.php',{score:score, userid:0 },
                    function(data){
                        alert(data+' Score = '+score);
            });
        }
    });
</script>
于 2012-09-28T06:14:53.203 に答える