Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2012, 13:45   #1
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию Шкала рейтинга, добавление класса списку

Здравствуйте ув. Форумчане. Интересует меня такой вопрос:
- на сайте есть шкала рейтинга у каждого пользователя, то есть на страничке отображается их много. Вид она имеет как на изображении.

Суть в чём, от имеющихся данных, в шкале присваивается элементам списка класс (который закрашивает нужным цветом эти элементы).
Хочу узнать как лучше присваивать дополнительный класс: в php файле-обработчике, или средствами jQuery на стороне клиента.

Код:
<ul>
<li class='rt add'></li>
<li class='rt add'></li>
<li class='rt'></li>
<li class='rt'></li>
<li class='rt'></li>
</ul>
и приведите пож-та пример или алгоритм как можно это реализовать.

Последний раз редактировалось PHPdev; 26.05.2012 в 14:00.
PHPdev вне форума Ответить с цитированием
Старый 26.05.2012, 15:47   #2
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию

Хорошо, попробую расширить представление проблемы.
Вытянул я из БД нужные значения, получил в конце концов переменную (целое число), а теперь нужно запустить цикл чтоб li добавить класс. И ограничить число циклов значением переменной.
Я пробовал реализовать подобный цикл на jQuery, но увы не могу запустить переход от первого выбранного потомка (li) к следующему.
Как я понимаю, лучше всё же присваивать дополнительный класс в php файле-обработчике.
Помогите плз люди добрые.
PHPdev вне форума Ответить с цитированием
Старый 26.05.2012, 17:25   #3
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию

Ха-ха, в общем сам решил. И всё работает.
Код:
$fin = round($reit);
            if ($fin == 1){
                $t1 = "add";
                $t2 = "";
                $t3 = "";
                $t4 = "";
                $t5 = "";
            }
            elseif ($fin == 2){
                $t1 = "add";
                $t2 = "add";
                $t3 = "";
                $t4 = "";
                $t5 = "";
            }
            elseif ($fin == 3){
                $t1 = "add";
                $t2 = "add";
                $t3 = "add";
                $t4 = "";
                $t5 = "";
            }
            elseif ($fin == 4){
                $t1 = "add";
                $t2 = "add";
                $t3 = "add";
                $t4 = "add";
                $t5 = "";
            }
            else {
                $t1 = "add";
                $t2 = "add";
                $t3 = "add";
                $t4 = "add";
                $t5 = "add";
            }
            echo "<p class='phptest_p'>" . $row['nick'] . " " . $row['za'] . " " . $row['pr'];
            echo " Получается: <span class='maem'>". $fin . "</span></p>" . "\n" ;
            echo "<span>
            <ul>
                <li class='rt $t1'></li>
                <li class='rt $t2'></li>
                <li class='rt $t3'></li>
                <li class='rt $t4'></li>
                <li class='rt $t5'></li>
            </ul>
        </span>"
Но всё же, хочу обратится к гуру программирования. Этот скрипт можно как-то оптимизировать? Или так покатит?
PHPdev вне форума Ответить с цитированием
Старый 26.05.2012, 19:10   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Можно, и нужно
Код:
$fin = round($reit);
$N = 5;
$t = array();
for ($i = 1; $i <= N; $i++) $t[$i] = "";
if (($fin >= 1) && ($fin <= N))
  for ($i = 1; $i <= $fin; $i++) $t = "add";
echo "<p class='phptest_p'>" . $row['nick'] . " " . $row['za'] . " " . $row['pr'];
echo " Получается: <span class='maem'>". $fin . "</span></p>" . "\n" ;
echo "<span><ul>";
for ($i = 1; $i <= $N; $i++)
  echo "<li class='rt ".$t[$i]."'></li>"
echo "</ul></span>";
Синтаксис не проверял, но вроде нигде в кавычках не запутался
И раз уж Вы спросили, хотя это скорее на будущее
Цитата:
Суть в чём, от имеющихся данных, в шкале присваивается элементам списка класс (который закрашивает нужным цветом эти элементы).
Хочу узнать как лучше присваивать дополнительный класс: в php файле-обработчике, или средствами jQuery на стороне клиента.
Сейчас есть тенденция - PHP должен только обрабатывать данные, и отдавать только данные их. Например, получили Вы в результате какого-то расчёта число 5, так и выводите с помощью PHP только число 5. А вот тем как они будут выглядеть занимается JavaScript, в том числе и создаёт весь необходимый HTML (на основе шаблонов)
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 26.05.2012, 19:42   #5
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию

О, благодарю. А теперь буду разбираться что там к чему. Только там где цикл for фигурные скобки Вы не забыли поставить? или это я ещё не всё знаю?
PHPdev вне форума Ответить с цитированием
Старый 26.05.2012, 19:59   #6
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Нет, у меня же там в цикле один оператор, скобки ставить не обязательно
Да разбираться-то не в чем - вместо того чтобы объявлять 5 переменных (или 25) объявляем массив из 5 элементов (25 соответственно), и свободно по нему гуляем. Вообще и с переменными можно было бы сделать примерно так же - в PHP есть конструкция
Код:
$$a;
это переменная с именем, которое содержится в переменной $a. Но это шаманство, лучше не извращаться
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 26.05.2012, 20:57   #7
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию

Ссори, я забыл указать что каждый из 5 элементов li имеет свой индивидуальный класс (который первый) потому, что они же разного размера (

Это разве что задать класс по типу rt1, rt2, rt3 ... и потом вместо цифры подставлять значение полученное при прохождении цикла. Так ведь?
PHPdev вне форума Ответить с цитированием
Старый 27.05.2012, 12:30   #8
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию

Увы, вынужден снова поднять даный вопрос.

Вот весь код
PHP код:
while($row mysql_fetch_array($result)){
            
            
$za $row['za'];
            
$pr $row['pr'];
            
$reit = ($za $pr)/2;
            
$fin round($reit);
            
$N 5;
            
$t = array();
            
            for (
$i 1$i <= $N$i++) $t[$i] = "";
            if ((
$fin >= 1) && ($fin <= $N))
              for (
$i 1$i <= $fin$i++) $t "add";
            echo 
"<p class='phptest_p'>" $row['nick'] . " " $row['za'] . " " $row['pr'];
            echo 
" Получается: <span class='maem'>"$fin "</span></p>" "\n" ;
            echo 
"<span><ul>"."\n";
            for (
$i 1$i <= $N$i++)
              echo 
"<li class='rt ".$t[$i]."'></li>"."\n";
            echo 
"</ul></span>"."<br />"."\n";
            
        } 
я немного поправил скрипт который мне предложил г-н Greblin. Но он все равно не работает. Меня смущает тут
PHP код:
$t "add"
ведь $t объявлена массивом. Сори, я тут вроде как ещё студент.
В общем, вот результат работы скрипта



плюс ещё, меня интересует сразу же и задание класса по типу rt1, rt2, rt3, rt4, rt5 чёто мне не приходят идеи как это слепить в одном цикле при создании li-шек.

... через пол часа ...

с rt1, rt2, rt3, rt4, rt5 разобрался, вот
PHP код:
for ($i 1$i <= $N$i++)
              echo 
"<li class='rt$i ".$t[$i]."'></li>"."\n";
            echo 
"</ul></span>"."<br />"."\n"
А с "add" пока всё ещё парюсь.

Последний раз редактировалось PHPdev; 27.05.2012 в 13:32.
PHPdev вне форума Ответить с цитированием
Старый 27.05.2012, 13:48   #9
PHPdev
учащийся
Пользователь
 
Аватар для PHPdev
 
Регистрация: 26.05.2012
Сообщений: 15
По умолчанию

Вот что значит настойчивость! Напишу, может кому и пригодится.

... через 15 мин ...

а собака вот где была зарыта
PHP код:
for ($i 1$i <= $fin$i++) $t[$i] = "add"
к $t надо было дописать ключ!
Ну всё, огромное спасибо Greblin'у.
PHPdev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графический редактор - добавление нового класса vandrouny Общие вопросы .NET 4 12.10.2010 20:19
Шкала/линейка mutabor Компоненты Delphi 6 13.08.2010 10:50
Не двигаеется шкала графика. Юнлинг Microsoft Office Excel 2 18.12.2009 09:25
почтовик-шкала загрузки betirsolt Работа с сетью в Delphi 2 30.11.2009 21:31
Шкала деления Grots Microsoft Office Excel 1 08.11.2009 00:55