Fanamura
21.07.2009 - 18:13
Есть скрипт рейтинга на кверри, ajaxstarrater_v122, вставляется и т.д. просто, вот только в чем проблема:
Нажимаем на рейтинг на странице, куда я его вставил, появляется картинка загрузки и... все.. в БД ничего не пишется.
Если наведем на рейтинг мышкой, скопируем ссылку, , затем вставим ее в браузер и перейдем, все работает, в БД записывается то, что и требовалось. Вопрос, почему не работает и как исправить?)
Код в файле, как подключал рейтинг:
PHP |
function rating_bar($id,$units='',$static='') {
//Connect to your rating database
$rating_dbhost = 'localhost'; $rating_dbuser = '**********'; $rating_dbpass = '**********'; $rating_dbname = '**********'; $rating_tableName = '**********'; $rating_path_db = 'http://subdomain.localhost/ajaxstarrater_v122/'; // the path to your db.php file (not used yet!) $rating_path_rpc = 'http://subdomain.localhost/ajaxstarrater_v122/'; // the path to your rpc.php file (not used yet!) $rating_unitwidth = 15; // the width (in pixels) of each rating unit (star, etc.) // if you changed your graphic to be 50 pixels wide, you should change the value above //mysql_select_db($rating_dbname); //set some variables $ip = $_SERVER['REMOTE_ADDR']; if (!$units) {$units = 10;} if (!$static) {$static = FALSE;}
// get votes, values, ips for the current rating bar $query=mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id' ")or die(" Error: ".mysql_error());
// insert the id in the DB if it doesn't exist already // see: http://www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar/#comment-121 if (mysql_num_rows($query) == 0) { $sql = "INSERT INTO $rating_dbname.$rating_tableName (`id`,`total_votes`, `total_value`, `used_ips`) VALUES ('$id', '0', '0', '')"; $result = mysql_query($sql); }
$numbers=mysql_fetch_assoc($query);
if ($numbers['total_votes'] < 1) { $count = 0; } else { $count=$numbers['total_votes']; //how many votes total } $current_rating=$numbers['total_value']; //total number of rating added together and stored $tense=($count==1) ? "vote" : "votes"; //plural form votes/vote
// determine whether the user has voted, so we know how to draw the ul/li $voted=mysql_num_rows(mysql_query("SELECT used_ips FROM $rating_dbname.$rating_tableName WHERE used_ips LIKE '%".$ip."%' AND id='".$id."' "));
// now draw the rating bar $rating_width = @number_format($current_rating/$count,2)*$rating_unitwidth; $rating1 = @number_format($current_rating/$count,1); $rating2 = @number_format($current_rating/$count,2);
if ($static == 'static') {
$static_rater = array(); $static_rater[] .= "\n".'<div class="ratingblock">'; $static_rater[] .= '<div id="unit_long'.$id.'">'; $static_rater[] .= '<ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;">'; $static_rater[] .= '<li class="current-rating" style="width:'.$rating_width.'px;">Currently '.$rating2.'/'.$units.'</li>'; $static_rater[] .= '</ul>'; $static_rater[] .= '<p class="static">'.$id.'. Ðåéòèíã: <strong> '.$rating1.'</strong>/'.$units.' ('.$count.' ãîëîñîâ) <em>This is \'static\'.</em></p>'; $static_rater[] .= '</div>'; $static_rater[] .= '</div>'."\n\n";
return join("\n", $static_rater);
} else {
$rater =''; $rater.='<div class="ratingblock">';
$rater.='<div id="unit_long'.$id.'">'; $rater.=' <ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;">'; $rater.=' <li class="current-rating" style="width:'.$rating_width.'px;">Currently '.$rating2.'/'.$units.'</li>';
for ($ncount = 1; $ncount <= $units; $ncount++) { // loop from 1 to the number of units if(!$voted) { // if the user hasn't yet voted, draw the voting stars $rater.='<li><a href="components/com_joomleague/frontend/default/ajaxstarrater_v122/db.php?j='.$ncount.'&q='.$id.'&t='.$ip.'&c='.$units.'" title="'.$ncount.' out of '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>'; } } $ncount=0; // resets the count
$rater.=' </ul>'; if($voted){ $rater.=''; } $rater.='<strong> '.$rating1.'</strong>/'.$units.'<br /> ('.$count.' ãîëîñîâ)'; $rater.='</div>'; $rater.='</div>'; return $rater; } }
<?php echo rating_bar("$starid",5); |
Заранее спасибо за ответы
Спустя 1 час, 31 минута, 3 секунды (21.07.2009 - 18:44) Wird_34 написал(а):
Ошибка по описанию вроде в реализации AJAX'а, а не в скрипте. А в приведенном вами кода его нет...