Jquery AJAX请求不是异步出现的?

时间:2014-01-27 15:27:31

标签: jquery ajax

我是网页设计的新手,刚开始进入jquery。我试图在我的网站上使用星级评分系统,一旦用户点击星级评级它将刷新星级评分系统。现在,因为它是我需要刷新整个页面,然后刷新并显示平均评级。这可能是一个愚蠢的假设,但我假设你调用了一个本身就是ajax请求的函数,这就是你需要做的就是自动刷新那个区域,这取决于你当然在做什么。以下是带有ajax请求的javascript代码。这整个星​​级评分系统是我从谷歌搜索中得到的一个,这个文件还有很多,但是我对“ReloadRating”函数进行了很多浓缩,并且仍然得到了与我最初得到的结果相同的结果,所以我就这样离开了。从看看这个,我还应该做些什么才能让它像ajax一样工作?任何建议表示赞赏,谢谢。

function RateItem(varItemId, varRate)
{
$.ajax({
    url:"ajax.rate.item.php",
type:"POST",
data:{item:varItemId,rating:varRate},
success:function(ReloadRating){
    alert(ReloadRating);
}
});
}
function ReloadRating(requestObj, jsonObj)
{
$.ajax({
url:"Rating::OutputRating",
type:"POST",
data:{$varItem:requestObj},
});
}

功能评分:: OutputRating     等级       {

  // Output the Rating information
  // Returns a string of HTML
  public static function OutputRating($varItem)
  {
    // Verify $varItem was provided
   if ($varItem != null && strlen(trim($varItem)) != 0)
    {
      // Information for the Output
      $averageStars = Rating::CalculateAverageRating($varItem);

      // Check to see that the user has not already rated this item
      if (Rating::CheckRatingsByIp($varItem) == 0)
      {
        $classes      = Rating::ShowStars($averageStars);


        // Write Output HTML for the Rating Data
        $output  = "\r\n";
        $output .= "<ul class=\"rating . {$classes}\" id=\"{$varItem}\">\r\n";
        $output .= "  <li class=\"one\" ><a   href=\"javascript:RateItem('{$varItem}', 1);\" title=\"1 Star\">1</a></li>\r\n";
        $output .= "  <li class=\"two\"><a   href=\"javascript:RateItem('{$varItem}', 2);\" title=\"2 Stars\">2</a></li>\r\n";
        $output .= "  <li class=\"three\"><a href=\"javascript:RateItem('{$varItem}', 3);\" title=\"3 Stars\">3</a></li>\r\n";
        $output .= "  <li class=\"four\"><a  href=\"javascript:RateItem('{$varItem}', 4);\" title=\"4 Stars\">4</a></li>\r\n";
        $output .= "  <li class=\"five\"><a  href=\"javascript:RateItem('{$varItem}', 5);\" title=\"5 Stars\">5</a></li>\r\n";
        $output .= "</ul>\r\n";
      }
      else
      {
        $classes      = Rating::ShowStars($averageStars);

        // Write Output HTML for the Rating Data
        $output  = "\r\n";
        $output .= "<ul class=\"rating . {$classes}\" id=\"{$varItem}\">\r\n";
        $output .= "  <li class=\"one\">1</li>\r\n";
        $output .= "  <li class=\"two\">2</li>\r\n";
        $output .= "  <li class=\"three\">3</li>\r\n";
        $output .= "  <li class=\"four\">4</li>\r\n";
        $output .= "  <li class=\"five\">5</li>\r\n";
        $output .= "</ul>\r\n";
      }
    }

1 个答案:

答案 0 :(得分:1)

有一个post请求简单地重新加载数据是很奇怪的。但这更像是一种惯例。

正如Keven B.提到的,你必须对更新页面的请求做些什么。 jQuery中的$.ajax默认情况下不执行任何操作。

http://api.jquery.com/load/可能正是您正在寻找的东西。它是$.ajax之上的便利助手。