2010-02-18 3 views
0

Я пытаюсь получить следующий код для отображения только на определенных страницах, но когда я нажимаю на определенные страницы, такие как домашняя страница или любые другие страницы, которые не используют этот код, я получаю следующее «предупреждение» («произошла некоторая ошибка, Пожалуйста, повторите попытку позже");.Проблема с JQuery Alert?

Как я могу получить код, который не отображает окно предупреждения на страницах, которые не используют этот код JQuery и все еще работают с кодом?

Я использую JQuery, PHP & MySQL.

Код JQuery.

$(document).ready(function() { 

    // get average rating 
    getRatingText(); 
    // get average rating function 
    function getRatingText(){ 
     $.ajax({ 
      type: "GET", 
      url: "../../../update.php", 
      data: "do=getavgrate", 
      cache: false, 
      async: false, 
      success: function(result) { 
       // add rating text 
       $("#rating-text").text(result); 
      }, 
      error: function(result) { 
       alert("some error occured, please try again later"); 
      } 
     }); 
    } 

    // get current rating 
    getRating(); 
    // get rating function 
    function getRating(){ 
     $.ajax({ 
      type: "GET", 
      url: "../../../update.php", 
      data: "do=getrate", 
      cache: false, 
      async: false, 
      success: function(result) { 
       // apply star rating to element dynamically 
       $("#current-rating").css({ width: "" + result + "%" }); 
       // add rating text dynamically 
       $("#rating-text").text(getRatingText()); 
      }, 
      error: function(result) { 
       alert("some error occured, please try again later"); 
      } 
     }); 
    } 


    // link handler 
    $('#ratelinks li a').click(function(){ 
     $.ajax({ 
      type: "GET", 
      url: "../../../update.php", 
      data: "rating="+$(this).text()+"&do=rate", 
      cache: false, 
      async: false, 
      success: function(result) { 
       // remove #ratelinks element to prevent another rate 
       $("#ratelinks").remove(); 
       // get rating after click 
       getRating(); 
      }, 
      error: function(result) { 
       alert("some error occured, please try again later"); 
      } 
     }); 

    }); 
}); 
+0

Есть ли код php, который может сделать это для меня, так как я включаю этот код в свой php. – gReEdY

ответ

1

Попробуйте это, используя, если проверить, если id="rating-text" элемента есть:

$(document).ready(function() { 

    if($("#rating-text").length) { 
     // get average rating 
     getRatingText(); 
     // get current rating 
     getRating(); 
    } 
    // get average rating function 
    function getRatingText(){ 
     $.ajax({ 
      type: "GET", 
      url: "../../../update.php", 
      data: "do=getavgrate", 
      cache: false, 
      async: false, 
      success: function(result) { 
       // add rating text 
       $("#rating-text").text(result); 
      }, 
      error: function(result) { 
       alert("some error occured, please try again later"); 
      } 
     }); 
    } 

    function getRating(){ 
     $.ajax({ 
      type: "GET", 
      url: "../../../update.php", 
      data: "do=getrate", 
      cache: false, 
      async: false, 
      success: function(result) { 
       // apply star rating to element dynamically 
       $("#current-rating").css({ width: "" + result + "%" }); 
       // add rating text dynamically 
       $("#rating-text").text(getRatingText()); 
      }, 
      error: function(result) { 
       alert("some error occured, please try again later"); 
      } 
     }); 
    } 


    // link handler 
    $('#ratelinks li a').click(function(){ 
     $.ajax({ 
      type: "GET", 
      url: "../../../update.php", 
      data: "rating="+$(this).text()+"&do=rate", 
      cache: false, 
      async: false, 
      success: function(result) { 
       // remove #ratelinks element to prevent another rate 
       $("#ratelinks").remove(); 
       // get rating after click 
       getRating(); 
      }, 
      error: function(result) { 
       alert("some error occured, please try again later"); 
      } 
     }); 

    }); 
}); 
0

Вы вызываете свои функции для каждого документа, потому что они не запускаются определенным селектором. Почему бы просто не удалить эти вызовы для getRating() и getRatingText() вне $ ('# ratelinks li a'). Click()?

0

Как я могу иметь код не отображается окна предупреждения о страницах, которые не используют этот JQuery код и все еще есть код ?

Они действительно используют его, вот в чем проблема. Один из вариантов - переместить все внутри функции и только вызвать функцию javascript на страницах, которым нужен этот код для запуска. Если у вас есть php, например header.inc, вам нужно передать какой-то параметр в голову и вызвать функцию только тогда, когда вам это нужно.

0

Tbere различные подходы к этой проблеме:

  1. Попробуйте вставить код в файл JS и включить его с помощью <script src='' /> с помощью PHP.
  2. Используйте переключатель для каждой страницы, которая должна включать этот скрипт.
  3. Используйте абсолютный URL-адрес для update.php вместо относительного.

Для чего, я думаю, у вас есть, вам нужно число 2. Через несколько минут вы отправите код об этом.