0

我正在使用一个名为 Thumbs Up的 PHP 投票脚本http://codecanyon.net/item/thumbsup/full_screen_preview/50411 。我对 PHP 很陌生,除了显示投票之外,一切都很好。

投票后,数据库会更新,并且有一个更新投票数的回发。我尝试了多种方法来显示结果,但它一直返回 NaN。如果我重新加载页面,则值会成功显示。

我在单击时加载结果表并尝试返回结果,但我没有运气。我循环遍历<li>并将结果存储在一个数组中。

这将返回 NaN 而不是值。如果我重新加载页面,则值在那里并更新。似乎导致此问题的 php 回发存在延迟。我确实尝试向 ajax 调用添加延迟,但它仍然返回 NaN。

代码:

我正在存储每个结果并将值存储在数组中

var resultVoteOne = voteOneDigit / total * 100;
var arrValues = [resultVoteOne]

我在条形图中显示结果:

$('.extras_result p.vote1 span').append(arrValues[0] + '%');

$(".extras_result").each(function() {
    var length = $(this).find("span").html();
    $(this).find("p").animate({'width':length}, 1000, function() {
  $(this).find("span").fadeIn(800);
    });
});     

如果我在投票后重新加载页面,则图表更新成功。

单击时,我尝试使用 ajax 更新值,但仍然没有运气:(

$('.containers input').on('click', function() { 
    $.ajax({
    url:'results.php',
    cache:false,
    success: function(response) {
    $('.voteResults').html(response);
    }
    });
});

感谢您对这个问题的任何帮助。

4

1 回答 1

0

首先在您的ajax方法中使用async:false这可以解决您的问题,只需在显示之前将voteRequest空白

$('.voteResults').html('');
$('.voteResults').html(response);

无论通过 ajax 来的什么都被转换成字符串,所以你必须在 javascript 中进行类型转换,然后再将它用作数字计算,否则它会给你结果 NaN

于 2013-02-10T21:52:12.067 回答