Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Объединение ячеек HTML таблицы c одинаковым текстом и стилями

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: PHP
bicerinka
Отправлено: 13 Октября, 2011 - 17:44:33
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Окт. 2011  
Откуда: Харьков


Помог: 0 раз(а)




Здравствуйте!

Написала код для генерации таблицы.
Стили и содержимое ячеек изменяются в зависимости от данных содержащихся в двумерном массиве $styles.
Ячейки нумеруются последовательно с помощью переменной $number.

Как можно сделать так, чтобы ячейки с одинаковыми параметрами объединялись?
Например, "Текст красного цвета" было написано посредине объединенных 4х ячеек.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function tab_gen($r,$c,$w,$h,$bgc,$bord)
  3. {
  4. $styles = array(
  5.     array( 'text'    => 'Текст красного цвета'
  6.          , 'cells'   => array(1,2,4,5)
  7.          , 'align'   => 'center'
  8.          , 'valign'  => 'center'
  9.          , 'color'   => 'FF0000'
  10.          , 'bgcolor' => '0000FF')
  11.   , array( 'text'    => 'Текст зеленого цвета'
  12.          , 'cells'   => array(8,9)
  13.          , 'align'   => 'right'
  14.          , 'valign'  => 'bottom'
  15.          , 'color'   => '00FF00'
  16.          , 'bgcolor' => 'FFFFFF')
  17.                 );
  18.                      
  19.    $number = 0;
  20.    echo ('<table width="'.$w.'" height="'.$h.'" bgcolor="'.$bgc.'" border="'.$bord.'" rules="all">');
  21.         for ($i=1; $i <= $r;$i++)
  22.                         {
  23.                                 echo ('<tr>');
  24.                                
  25.                                 for ($a=1; $a <= $c; $a++)
  26.                                 {
  27.                                         $number++;
  28.                                        
  29.                                         $tx='';
  30.                                         if (in_array($number, $styles[0]['cells']))
  31.                                         {
  32.                                           $tx=$styles[0]['text'];
  33.                                           $al=$styles[0]['align'];
  34.                                           $val=$styles[0]['valign'];
  35.                                           $col=$styles[0]['color'];
  36.                                           $bg=$styles[0]['bgcolor'];
  37.                                         }
  38.                                           else if (in_array($number, $styles[1]['cells'])){
  39.                                           $tx=$styles[1]['text'];
  40.                                           $al=$styles[1]['align'];
  41.                                           $val=$styles[1]['valign'];
  42.                                           $col=$styles[1]['color'];
  43.                                           $bg=$styles[1]['bgcolor'];
  44.                                         }
  45.                                         else {$bg=$bgc;}
  46.                                         $td = '<td align="'.$al.'" valign="'.$val.'" bgcolor="'.$bg.'" style="color:'.$col.';">'.$tx.'</td>';
  47.                                         echo($td);
  48.                                 }
  49.                                 echo ('</tr>');
  50.                         }
  51.  echo ('</table>');
  52. }
  53. tab_gen(3,3,300,300,'ffffff',2);
  54. ?>


Спасибо
 
 Top
Re_Nard
Отправлено: 19 Апреля, 2015 - 15:48:52
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function tab_gen($r,$c,$w,$h,$bgc,$bord)
  3. {
  4.     $styles = array(
  5.         array( 'text'    => 'Текст Красного цвета'
  6.         , 'cells'   => array(1,2,4,5)
  7.         , 'align'   => 'center'
  8.         , 'valign'  => 'center'
  9.         , 'color'   => 'FF0000'
  10.         , 'bgcolor' => '0000FF')
  11.     , array( 'text'    => 'Текст Зеленого цвета'
  12.         , 'cells'   => array(8,9)
  13.         , 'align'   => 'right'
  14.         , 'valign'  => 'bottom'
  15.         , 'color'   => '00FF00'
  16.         , 'bgcolor' => 'FFFFFF')
  17.     );
  18.     $number = 0;
  19.     echo ('<table width="'.$w.'" height="'.$h.'" bgcolor="'.$bgc.'" border="'.$bord.'" rules="all">');
  20.     for ($i=1; $i <= $r;$i++)
  21.     {
  22.         echo ('<tr>');
  23.         for ($a=1; $a <= $c; $a++)
  24.         {
  25.             $number++;
  26.             $tx=' ';
  27.             if (in_array($number, $styles[0]['cells']))
  28.             {
  29.                 $tx=$styles[0]['text'];
  30.                 $al=$styles[0]['align'];
  31.                 $val=$styles[0]['valign'];
  32.                 $col=$styles[0]['color'];
  33.                 $bg=$styles[0]['bgcolor'];
  34.             }
  35.             elseif (in_array($number, $styles[1]['cells'])){
  36.                 $tx=$styles[1]['text'];
  37.                 $al=$styles[1]['align'];
  38.                 $val=$styles[1]['valign'];
  39.                 $col=$styles[1]['color'];
  40.                 $bg=$styles[1]['bgcolor'];
  41.             }
  42.             else {$bg=$bgc;}
  43.              
  44.             if ($i == 1 and $a ==1) {
  45.               $td = '<td  colspan="2" rowspan="2" align="'.$al.'" valign="'.$val.'" bgcolor="'.$bg.'" style="width:100px; color:'.$col.';">'.$tx.'</td>';
  46.               echo($td);        
  47.             } else if ($i>2 or $a>2) {
  48.               $td = '<td rowspan="" align="'.$al.'" valign="'.$val.'" bgcolor="'.$bg.'" style="width:100px; height:100px; color:'.$col.';">'.$tx.'</td>';
  49.               echo($td);
  50.             }
  51.  
  52.  
  53.         }
  54.         echo ('</tr>');
  55.     }
  56.     echo ('</table>');
  57. }
  58. tab_gen(3,3,400,400,'ffffff',1);
  59.     ?>

(Отредактировано автором: 22 Апреля, 2015 - 12:57:36)

 
 Top
bicerinka
Отправлено: 20 Сентября, 2015 - 08:59:43
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Окт. 2011  
Откуда: Харьков


Помог: 0 раз(а)




Спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTML, Дизайн & CSS »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB