2012-03-16 11 views
0

質問と回答を投票するモデレートスクリプトを作成しました。以前はスクリプトが機能していましたが、もう一度このプロジェクトでコーディングを開始するときに戻ってきましたが、もう機能しません。投稿でajaxを使って情報を送信する際の問題

スクリプトは実行していました:voteというdivをクリックするか、またはlink1をクリックすると、それが上か下かを尋ねます。アップしている場合は、urlをロードします: "mod_up_vote.php"あなたが投票している質問に関する情報を投稿で送信します。それはOKでした。しかし今ではありません。私は印刷して$ _POST変数をデータベースに挿入していたので、そのページはロードされませんでした。

ここで間違っていると思いますか?ありがとう。

$(document).ready(function() 
    { 

    $(document).delegate('.vote, .vote1', '.vote2', 'click', function() 
     { 

    var id = $(this).attr("id"); 
    var name = $(this).attr("name"); 
    var dataString = 'id='+ id ; 
    var parent = $(this); 

    if(name=='mod_up') 
    { 

    $(this).fadeIn(200).html('<img src="dot.gif" align="absmiddle">'); 
    $.ajax({ 
     type: "POST", 
     url: "mod_up_vote.php", 
     dataType: "xml", 
     data: dataString, 
     cache: false, 

     success: function(xml) 
     { 
    //$("#mod-pregunta").html(html); 
    //$("#mod-respuesta").html(html); 

    //parent.html(html); 
    $(xml).find('pregunta').each(function(){ 
    var id = $(this).attr('id'); 
    var pregunta = $(this).find('preguntadato').text(); 
    var respuesta = $(this).find('respuestadato').text(); 
    var votoup = $(this).find('votoup').text(); 
    var votodown = $(this).find('votodown').text(); 
    var id_pregunta = $(this).find('id_pregunta').text(); 
    var id_respuesta = $(this).find('id_respuesta').text(); 
    $("#mod-pregunta").html(pregunta); 
    $("#mod-respuesta").html(respuesta); 
    //$(".vote").attr('id', $(this).find('id_pregunta').text()); 
    $(".vote1").html("<a href=\"modera\" title=\""+ id_pregunta + "-"+ id_respuesta + "-1\" class=\"vote1\" id=\""+ id_pregunta + "-"+ id_respuesta + "-1\" name=\"mod_up\">Aceptar</a>"); 
    $(".vote2").html("<a href=\"modera\" title=\""+ id_pregunta + "-"+ id_respuesta + "-2\" class=\"vote2\" id=\""+ id_pregunta + "-"+ id_respuesta + "-2\" name=\"mod_up\">Rechazar</a>"); 

    //$("span", this).html("(ID = '<b>" + this.id + "</b>')"); 
    }); 
    } }); 

    } 
return false; 
}); 
+0

は、あなたはそれがページをロードしていないことを確認していますか? PHPページにエラーがないことを確認しましたか? –

+0

URL: "mod_up_vote.php"、私はデータベースにテスト値を挿入していますが、何も保存しません。 –

+0

が正しく挿入されていますか? "mod_up_vote.php"に問題があるようです。 –

答えて

1

これはJQueryの問題です。なぜclickの代わりにdelegateを使用していますか?また、代理人への引数が正しくないように見えます。

$(elements).delegate(selector, events, data, handler); // jQuery 1.4.3+ 

あなたは、私が唯一存在しないと仮定することができ'.vote2'と呼ばれるイベントのために、機能を結合している:あなたはドキュメントを見れば、あなたは関数のシグネチャがある表示されます。

代わりにclickを使用してみてください。私が知る限り、デリゲートを使用する理由はありません。

編集:

ので、同じようclickを使用してみてください:

$('.vote, .vote1').click(function(){ /* your code here */ }); 
+0

私はhttps://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.jsを使用していますが、私はそれを見ていきます。私は関数がhrefでクラスvote2、vote1としか働かなくてはならないので、どうすればいいのですか?(クリックを使って)ありがとう。 +1 btw。 –

+0

投稿を編集して「クリック」の使い方を表示 –

+0

aW!ありがとう! btw、私はvote2を削除しました。それはセレクターとクリック後です。それは今働いて、それはdbのテスト値を挿入!アラートも機能しています!そして節度!ハハありがとう。私はそれも、ありがとう、クリックして使用する場合は表示されます。 –

関連する問題