Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с выделением цветом таблиц, отзывы разных цветов должны быть 
:(
    Опции темы
mobi_vic
Дата 1.11.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



есть сайт, на нем есть отзывы про компании.
все отзывы выводятся в 4 видах:
все / положительные / нейтральные / отрицательные

задача:
что б отзывы (таблицы с отзывами) по видах выводились разными цветами, например:
положительные - зеленым. нейтральные - синим, а отрицательные - желтым.

когда на странице "все" то получается что страница должна быть разноцветной)

Код

<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<form rewiew="<?echo JRoute::_( 'index.php?option=com_scatalog&view=rewiews');?>" method="post" name="adminForm">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr><td width="33%">
<label for="cid">
    <?php echo JText::_( 'LIST COMPANY' ); ?><br />
    <? echo $this->lists['catid'];?>
</label></td>
<td width="33%"><label for="filter_city">
    <?php echo JText::_( 'LIST CITY' ); ?><br />
    <?  echo $this->lists['cityid'];?>
</label></td>
<td width="33%"><label for="filter_vid">
    <?php echo JText::_( 'LIST VID' ); ?><br />
    <?  echo $this->lists['vidid'];?>
</label></td>
</tr></table>
<br>
<?php
if ($_GET['lang'] == uk) {
    echo '<div style="otziv"><a href="http://site.com/index.php?option=com_scatalog&section=rewiews&task=add&cid=5&Itemid=9&lang=uk">Додати відгук!</a></div>';
}
else {
    echo '<div style="otziv"><a href="http://site.com/index.php?option=com_scatalog&section=rewiews&task=add&cid=5&Itemid=9&lang=ru">Добавить отзыв!</a></div>';
    }
?>
<hr />
<?

$adrr = $_SERVER['REQUEST_URI'];

    $adrr = str_replace ('&type=3', '', $adrr);
    $adrr = str_replace ('&type=2', '', $adrr);
    $adrr = str_replace ('&type=1', '', $adrr);
    
    
    $adrr_g = 'http://'.$_SERVER['HTTP_HOST'].$adrr.'&type=1';
    $adrr_b = 'http://'.$_SERVER['HTTP_HOST'].$adrr.'&type=3';
    $adrr_m = 'http://'.$_SERVER['HTTP_HOST'].$adrr.'&type=2';
    $adrr_r = 'http://'.$_SERVER['HTTP_HOST'].$adrr;
?>




<?
    $ob_c = 0;
    $ob_b = 0;
    $ob_g = 0;
    $ob_m = 0;
    
  foreach($this->rewiew as $key =>$value)
  {
    $ob_c++;
    if (($value->rating) > 3) {$ob_g++;}
    if (($value->rating) == 3) {$ob_m++;}
    if (($value->rating) < 3) {$ob_b++;}
  }
  
  

if ($_GET['lang'] == uk) {
    echo '<a href="'.$adrr_r.'">Всього:</a> '.$ob_c.'&nbsp&nbsp&nbsp&nbsp'.'<a href="'.$adrr_g.'">Позитивних:</a> '.$ob_g.'&nbsp&nbsp&nbsp&nbsp'.'<a href="'.$adrr_m.'">Нейтральных:</a> '.$ob_m.'&nbsp&nbsp&nbsp&nbsp'.'<a href="'.$adrr_b.'">Негативних:</a> '.$ob_b.'&nbsp&nbsp&nbsp&nbsp';
}
else {
    echo '<a href="'.$adrr_r.'">Всего:</a> '.$ob_c.'&nbsp&nbsp&nbsp&nbsp'.'<a href="'.$adrr_g.'">Положительных:</a> '.$ob_g.'&nbsp&nbsp&nbsp&nbsp'.'<a href="'.$adrr_m.'">Нейтральных:</a> '.$ob_m.'&nbsp&nbsp&nbsp&nbsp'.'<a href="'.$adrr_b.'">Отрицательных:</a> '.$ob_b.'&nbsp&nbsp&nbsp&nbsp';
    }  
?> 
<hr />



<!--Esli ni4ego ne vibrano -->
<?
  if (!isset($_GET['type'])) { foreach($this->rewiew as $key =>$value){
?>                                                     

<h2><? echo /*JText::_( 'FIO' ).': '.*/$value->title.' ('.JText::_( 'RATING' ).': '.$value->rating.') '; ?></h2>

<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr><td class="compdetail"><? echo JText::_( 'COMPANY' ).': '; ?><a href="<? echo JRoute::_( 'index.php?option=com_scatalog&section=company&cid='.$value->company_id);?>"><? echo $value->company;?> </a></td><td><? echo JText::_( 'CDATE' ).': '.date("d.m.Y",strtotime($value->cdate));?></td></tr>
<tr><td class="compdetail" colspan="2"><? echo $value->description;?></td></tr>
<tr><td class="compdetail"><? echo JText::_( 'CITY' ).': '.(empty($value->city)?(JText::_( 'ALL' )):$value->city);?></td><td><? echo JText::_( 'VID' ).': '.(empty($value->vid)?(JText::_( 'ALL' )):$value->vid);?></td></tr>
</table>
<hr />




<?
  }
    }
?>


<!--Esli good -->

<?
    if (($_GET['type']) == 1) {
    
    foreach($this->rewiew as $key =>$value){
                                                    
    if (($value->rating) > 3) {                                                

                                                
echo "<h2><!--Esli good -->";
echo /*JText::_( 'FIO' ).': '.*/$value->title.' ('.JText::_( 'RATING' ).': '.$value->rating.') ';
echo "</h2>";

echo '<table width="100%" border="0" cellspacing="0" cellpadding="2">';
echo '<tr><td class="compdetail">';
echo JText::_( 'COMPANY' ).': '; 
echo '<a href="';
echo JRoute::_( 'index.php?option=com_scatalog&section=company&cid='.$value->company_id);
echo '">';
echo $value->company;
echo '</a></td><td>'; 
echo JText::_( 'CDATE' ).': '.date("d.m.Y",strtotime($value->cdate));
echo '</td></tr>';
echo '<tr><td class="compdetail" colspan="2">'; 
echo $value->description;
echo '</td></tr>';
echo '<tr><td class="compdetail">'; 
echo JText::_( 'CITY' ).': '.(empty($value->city)?(JText::_( 'ALL' )):$value->city);
echo '</td><td>';
echo JText::_( 'VID' ).': '.(empty($value->vid)?(JText::_( 'ALL' )):$value->vid);
echo '</td></tr>


</table>
<hr />';

}
  
  }
}
?>
    
<!--Esli bad -->

<?
    if (($_GET['type']) == 3) {
    
    foreach($this->rewiew as $key =>$value){
                                                    
    if (($value->rating) < 3) {                                                
                                                    
echo "<h2><!--Esli good -->";
echo /*JText::_( 'FIO' ).': '.*/$value->title.' ('.JText::_( 'RATING' ).': '.$value->rating.') ';
echo "</h2>";

echo '<table width="100%" border="0" cellspacing="0" cellpadding="2">';
echo '<tr><td class="compdetail">';
echo JText::_( 'COMPANY' ).': '; 
echo '<a href="';
echo JRoute::_( 'index.php?option=com_scatalog&section=company&cid='.$value->company_id);
echo '">';
echo $value->company;
echo '</a></td><td>'; 
echo JText::_( 'CDATE' ).': '.date("d.m.Y",strtotime($value->cdate));
echo '</td></tr>';
echo '<tr><td class="compdetail" colspan="2">'; 
echo $value->description;
echo '</td></tr>';
echo '<tr><td class="compdetail">'; 
echo JText::_( 'CITY' ).': '.(empty($value->city)?(JText::_( 'ALL' )):$value->city);
echo '</td><td>';
echo JText::_( 'VID' ).': '.(empty($value->vid)?(JText::_( 'ALL' )):$value->vid);
echo '</td></tr>
</table>
<hr />';

}
  
  }
}
?>

<!--Esli midl -->

<?
    if (($_GET['type']) == 2) {
    
    foreach($this->rewiew as $key =>$value){
                                                    
    if (($value->rating) == 3) {                                                
                                                    
echo "<h2><!--Esli good -->";
echo /*JText::_( 'FIO' ).': '.*/$value->title.' ('.JText::_( 'RATING' ).': '.$value->rating.') ';
echo "</h2>";

echo '<table width="100%" border="0" cellspacing="0" cellpadding="2">';
echo '<tr><td class="compdetail">';
echo JText::_( 'COMPANY' ).': '; 
echo '<a href="';
echo JRoute::_( 'index.php?option=com_scatalog&section=company&cid='.$value->company_id);
echo '">';
echo $value->company;
echo '</a></td><td>'; 
echo JText::_( 'CDATE' ).': '.date("d.m.Y",strtotime($value->cdate));
echo '</td></tr>';
echo '<tr><td class="compdetail" colspan="2">'; 
echo $value->description;
echo '</td></tr>';
echo '<tr><td class="compdetail">'; 
echo JText::_( 'CITY' ).': '.(empty($value->city)?(JText::_( 'ALL' )):$value->city);
echo '</td><td>';
echo JText::_( 'VID' ).': '.(empty($value->vid)?(JText::_( 'ALL' )):$value->vid);
echo '</td></tr>
</table>
<hr />';

}
  
  }
}
?>


<input type="hidden" name="option" value="com_scatalog" />
<input type="hidden" name="view" value="rewiews" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>



ну и как бы вариант, как я пытался это решить:

я каждому виду отзывов сделал таблицу и приписал свой цвет, оно работает, но только, на страницах с определенным видом, тоесть там где "все" цветами не закрашивается.

дело в том, что я нуб, и только слегка понимаю принципы, но мне кажется что если б можно было как-то пропить что-то типа:

if type1==bgcolor"red"
if type2==bgcolor"green"
if type3==bgcolor"blue"

ну как-то так) я буду премного благодарен за помощь)))

вот как мне подсказали, но у меня не вышло.

Код
<?php
function type_color($type)
{
if($type==1)
  $color = "green";
elseif($type==2)
  $color = "yellow";
else
  $color = "red";
return $color;
}
echo "<font color='".type_color($row['type'])."'>test</font>";
?>



у меня не получается именно там, где функция?? "если ничего не выбрано"
PM MAIL WWW ICQ Skype   Вверх
NLspieler
Дата 1.11.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Ну кто же так пишет?
Все подряд и html и php. 

Функция твоя работает. А проблема видимо совсем в другом.


А вообще, задача цвета таблицы решается путем использования css и классов для тегов таблицы. 

1. Прописываем css стили, для трех разновидностей таблиц:

Код


.blau 
{
    border: 1px solid #0000CC;
}
.green

{
    border: 1px solid #336600;
}

.yelow 
{
    border: 1px solid #FFFF00;
}


Разумеется, в стилях можно написать все, что душе угодно. Можно сделать фон таблицы разными цветами,
можно сделать различное обрамление, разной толщины, цвета и т.д.



2. Скриптом подставляем нужное название класса
Код

<table width="500" border="0" cellspacing="0" cellpadding="0" class="blau">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>



Это сообщение отредактировал(а) NLspieler - 1.11.2009, 20:46
PM MAIL   Вверх
mobi_vic
Дата 1.11.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



пока не могу сказать, получилось ли, а как подключить стили css в пхп?
кстати, мне самое главное - что б среди общих всех отзывов выводились они разными цветами. 
пс. код писал не я. мне просто предстоит исправлять ошибки в сайте.
PM MAIL WWW ICQ Skype   Вверх
nezabor
Дата 1.11.2009, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесной житель...
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.4.2008
Где: Москва

Репутация: нет
Всего: нет



css не в php подключается, а в head хтмл
Код

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Твоя страница</title>
<link href="/css/main.css" rel="stylesheet" type="text/css">
</head>

--------------------
Бесплатно о сайтах
PM MAIL WWW Skype   Вверх
mobi_vic
Дата 2.11.2009, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



ну я не настолько нуб), но мне нужно конкретно в этот файл что я прицепил выше присобачить стили css 
PM MAIL WWW ICQ Skype   Вверх
Ипатьев
Дата 2.11.2009, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



по-моему, вопрос добавления цсс  в этом топике совсем не главный.
судя по тому, что обсуждаемый скрипт работает по мегагениальной технологии "заинклюдим модуль в дизайн", с этим действительно могут быть проблемы.
другое дело, что цсс - это для красоты. 
А проблема совсем была не в нем. 
PM MAIL   Вверх
capitan
Дата 2.11.2009, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



"я каждому виду отзывов сделал таблицу и приписал свой цвет"  Этот как? Где сделали, где приписали? 
Код

<?
    $adrr = $_SERVER['REQUEST_URI'];
    $adrr = str_replace ('&type=3', '', $adrr);
    $adrr = str_replace ('&type=2', '', $adrr);
    $adrr = str_replace ('&type=1', '', $adrr);
    
    
    $adrr_g = 'http://'.$_SERVER['HTTP_HOST'].$adrr.'&type=1';
    $adrr_b = 'http://'.$_SERVER['HTTP_HOST'].$adrr.'&type=3';
    $adrr_m = 'http://'.$_SERVER['HTTP_HOST'].$adrr.'&type=2';
    $adrr_r = 'http://'.$_SERVER['HTTP_HOST'].$adrr;
?>


Этот код меня просто убил. Т.е. вы передаете тип отзыва в запросе и на основании него закрашиваете таблицу?  А там где все, вроде как ничего не передаете, но хотите чтобы все раскрасилось? Или я что-то не правильно понял?
PM MAIL WWW ICQ   Вверх
mobi_vic
  Дата 2.11.2009, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



хех)
ну wcc я подключил без проблем, но у меня всеравно не получается при выводе всех отзывов, положительные выделять одним цветом, нейтральные другим, а отрицательные третим,
при всем при том, что при просмотре отдально положительных, отрицательных, или нейтральных отзывов, таблицы становятся как и нужно именно тех цветов, что я и задаю.

помогите плиз при выводе всех отзывов сделать деления на цвета...
я так понимаю, загвоздка именно в этом куске:
Код

<!--Esli ni4ego ne vibrano -->
<?
  if (!isset($_GET['type'])) { foreach($this->rewiew as $key =>$value){
?>                                                     

<h2><? echo /*JText::_( 'FIO' ).': '.*/$value->title.' ('.JText::_( 'RATING' ).': '.$value->rating.') '; ?></h2>

<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr><td class="compdetail"><? echo JText::_( 'COMPANY' ).': '; ?><a href="<? echo JRoute::_( 'index.php?option=com_scatalog&section=company&cid='.$value->company_id);?>"><? echo $value->company;?> </a></td><td><? echo JText::_( 'CDATE' ).': '.date("d.m.Y",strtotime($value->cdate));?></td></tr>
<tr><td class="compdetail" colspan="2"><? echo $value->description;?></td></tr>
<tr><td class="compdetail"><? echo JText::_( 'CITY' ).': '.(empty($value->city)?(JText::_( 'ALL' )):$value->city);?></td><td><? echo JText::_( 'VID' ).': '.(empty($value->vid)?(JText::_( 'ALL' )):$value->vid);?></td></tr>
</table>
<hr />



Добавлено через 6 минут и 13 секунд
Цитата(capitan @  2.11.2009,  01:27 Найти цитируемый пост)
"я каждому виду отзывов сделал таблицу и приписал свой цвет"  Этот как? Где сделали, где приписали? 

Этот код меня просто убил. Т.е. вы передаете тип отзыва в запросе и на основании него закрашиваете таблицу?  А там где все, вроде как ничего не передаете, но хотите чтобы все раскрасилось? Или я что-то не правильно понял? 


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

по поводу таблиц:
там, ниже этого кода, что вы цитировали, есть код, который относится к конкретному виду комментария, вот я его таблицы и закрашивал.
PM MAIL WWW ICQ Skype   Вверх
capitan
Дата 2.11.2009, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



mobi_vic, код просто ужас. Писать костыли я не люблю, но раз от этого зависит ваша работа,- помогу.
Вам нужно работать не с типом, а с рейтингом сообщения. :
Код

<?php

<!--Esli ni4ego ne vibrano -->
<?
  if (!isset($_GET['type'])) { 

    function TypeColor($rating) {
        $rating = intval($rating); 
        
        if($rating < 3) {
            return "green";
        } else if($rating == 3) {
            return "yellow";
        } else if($rating > 3) {
            return "red";
        } else {
            return false;
        }  
    }
      
      foreach($this->rewiew as $key =>$value){
?>                                                     
<h2><? echo /*JText::_( 'FIO' ).': '.*/$value->title.' ('.JText::_( 'RATING' ).': '.$value->rating.') '; ?></h2>
<table width="100%" border="0" cellspacing="0" cellpadding="2" class="<?=TypeColor($value->rating);?>">


Таким образом мы навесили класс на таблицу. Далее уже прописываем стили в css. В PHP это делается так:
Прописываем в самом начале очередной костыль:
Код

код php
?>
<style>
table.green td {background-color: green;}
table.yellow td {background-color: yellow;}
table.red td {background-color: red;}
</style>
<?
код php


Это сообщение отредактировал(а) capitan - 2.11.2009, 01:54
PM MAIL WWW ICQ   Вверх
mobi_vic
Дата 2.11.2009, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



спасибо большое, но это всеравно не помогло(((

PM MAIL WWW ICQ Skype   Вверх
capitan
Дата 2.11.2009, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



mobi_vic, что значит не помогло? Обратите внимание на строчку:
Код

class="<?=TypeColor($value->rating);?>"

В первом варианте было с ошибкой без "="

Это сообщение отредактировал(а) capitan - 2.11.2009, 02:01
PM MAIL WWW ICQ   Вверх
mobi_vic
Дата 2.11.2009, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iPhone developer



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.6.2007
Где: Kiev

Репутация: нет
Всего: нет



capitan, спасибо огромное, теперь все работает)))
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.