2012-03-16 30 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