Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: rating script
 
 автор: makigo   (08.01.2012 в 14:36)   письмо автору
 
 

Привет всем.У меня такой скрипт рейтинга

function getUrlVars()
{
   var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

if (document.images){
  pic1 = new Image(220,19); 
  pic1.src = "img/rating_loading.gif"; 

  pic2 = new Image(25,75); 
  pic2.src = "img/rating_star.gif"; 

  pic3 = new Image(25,75); 
  pic3.src = "img/rating_star_2.gif"; 
  
  pic4 = new Image(16,13); 
  pic4.src = "img/rating_tick.gif";
  
  pic5 = new Image(14,14); 
  pic5.src = "img/rating_warning.gif";
}

// AJAX ----------------------------------------

var xmlHttp

function GetXmlHttpObject(){

var xmlHttp = null;

    try {
      // Firefox, Opera 8.0+, Safari
      xmlHttp = new XMLHttpRequest();
      }
    catch (e) {
      // Internet Explorer
      try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
      catch (e){
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
      }
      
    return xmlHttp;

}

// Calculate the rating
function rate(rating,id,show5,showPerc,showVotes){

    xmlHttp = GetXmlHttpObject()
    
    if(xmlHttp == null){
        alert ("Your browser does not support AJAX!");
        return;
      }

    xmlHttp.onreadystatechange = function(){
        
    var loader = document.getElementById('loading_'+id);
    var uldiv = document.getElementById('ul_'+id);
    
        if (xmlHttp.readyState == 4){ 
            
            //loader.style.display = 'none';
            var res = xmlHttp.responseText;
            
            //alert(res);
            
            if(res == 'already_voted'){
                
                loader.style.display = 'block';
                loader.innerHTML = '<div class="voted_twice">&#1332;&#1400;&#1410;&#1412; &#1377;&#1408;&#1380;&#1381;&#1398; &#1379;&#1398;&#1377;&#1392;&#1377;&#1407;&#1381;&#1388; &#1381;&#1412;</div>';
                
            } else {
                
                loader.style.display = 'block';
                loader.innerHTML = '<div class="voted">&#1351;&#1398;&#1400;&#1408;&#1392;&#1377;&#1391;&#1377;&#1388;&#1400;&#1410;&#1385;&#1397;&#1400;&#1410;&#1398;</div>';

                if(show5 == true){
                    var out = document.getElementById('outOfFive_'+id);
                    var calculate = res/20;
                    out.innerHTML = Math.round(calculate*100)/100; // 3.47;
                    //out.innerHTML = Math.round((calculate*2),0)/2; // 3.5;
                } 
                
                if(showPerc == true){
                    var perc = document.getElementById('percentage_'+id);
                    //var newPerc = Math.round(Math.ceil(res/5))*5;
                    var newPerc = res;
                    perc.innerHTML = newPerc+'%';
                }
                
                else if(showPerc == false){
                    var newPerc = res;
                }
                
                if(showVotes == true){
                    var votediv = document.getElementById('showvotes_'+id).firstChild.nodeValue;
                    var splitted = votediv.split(' ');
                    var newval = parseInt(splitted[0]) + 1;
                    if(newval == 1){
                        document.getElementById('showvotes_'+id).innerHTML = newval+' &#1364;&#1406;&#1381;';
                    } else {
                        document.getElementById('showvotes_'+id).innerHTML = newval+' &#1364;&#1406;&#1381;';
                    }
                }
                
                var ulRater = document.getElementById('rater_'+id);
                ulRater.className = 'star-rating2';
                
                var all_li = ulRater.getElementsByTagName('li');
                
                // start at 1 because the first li isn't a star
                for(var i=1;i<all_li.length;i++){
                    
                    all_li[i].getElementsByTagName('a')[0].onclick = 'return false;';
                    all_li[i].getElementsByTagName('a')[0].setAttribute('href','#');
                    
                }
                
                if(navigator.appName == 'Microsoft Internet Explorer'){
                    uldiv.style.setAttribute('width',newPerc+'%'); // IE
                 } else {
                    uldiv.setAttribute('style','width:'+newPerc+'%'); // Everyone else
                 }
                
            }
        } else {
            loader.innerHTML = '<img src="img/rating_loading.gif" alt="loading" />';    
        }
    
    }

var spart = getUrlVars()["spart"];
var rswk = getUrlVars()["cat"];
if (typeof rswk === 'undefined') var rswk = "og";
var rsw = rswk.substr(0,2);

    switch(rsw)
{
case "ad":     
var url = "ad/includes/rating_process.php";
break;
case "ef":     
var url = "ef/includes/rating_process.php";
break;
case "fp":     
var url = "fp/includes/rating_process.php";
break;
case "hh":     
var url = "hh/includes/rating_process.php";
break;
case "mb":     
var url = "mb/includes/rating_process.php";
break;
case "nn":     
var url = "nn/includes/rating_process.php";
break;
case "og":     
var url = "og/includes/rating_process.php";
break;
case "se":     
var url = spart+"/includes/rating_process.php";
break;
}
    var params = "id="+id+"&rating="+rating;
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", params.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(params);



НО оно не работает с Internet Explorer. Ни1его непонимаю в Ajax наверно проблема в спецификаций Ajax запроса в IE:

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования