2012-03-16 70 views
0

我做了一個審覈腳本,投票上下問題和答案。前一段時間,腳本工作,但當我回來再次開始在這個項目中編碼時,它不再工作了。通過郵政發送信息與阿賈克斯問題

腳本是這樣做的:當你點擊一個名爲vote的投票,或者投票1的鏈接時,它會詢問它是否啓動。如果它已啓動,則會加載url:「mod_up_vote.php」,通過郵寄發送關於您投票的問題的一些信息。還可以。但是不是現在。它不會加載該頁面,因爲我正在打印並在數據庫中插入$ _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頁面沒有錯誤? – 2012-03-16 22:45:21

+0

在網址:「mod_up_vote.php」,我插入數據庫的測試值,它不保存任何東西。 – 2012-03-16 22:46:15

+0

但你確定它插入正確嗎?聽起來這可能是「mod_up_vote.php」的問題。 – 2012-03-16 22:57:27

回答

1

這看起來像你的JQuery的問題。爲什麼您使用delegate而不是click?此外,您的委託參數似乎不正確。如果你看的文檔,你會看到函數簽名是:

$(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但我會看到。因爲我需要的功能只能在類的投票2,投票1 ...我應該怎麼做?(使用點擊)謝謝。 +1 btw。 – 2012-03-16 23:28:52

+0

我編輯了帖子,展示如何使用'click' – 2012-03-16 23:32:05

+0

aW!謝謝!順便說一句,我刪除了vote2。所以這是選擇器和點擊後。它現在起作用了,它在db中插入了測試值!並警告它的工作呢!適度!!哈哈謝謝。我會看看如果使用點擊它也可以,謝謝。 – 2012-03-16 23:34:06