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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2013, 19:20   #1
ТАМ
 
Регистрация: 06.12.2009
Сообщений: 8
По умолчанию генерирование атрибута id

На сайте организован вывод подменю при помощи js (определяет открытие подменю при наведении мыши на divблок):

<div onmouseover="LeftMenuMouseOver1({$i d}); return true;" onmouseout="LeftMenuMouseOut1({$id} ); return true;" style="padding-left:0px;border:0px solid black;">

и php (определяет количество страниц для формирования списка подменю list).
PHP код:
foreach($arr1 as $item1) {
                        
$tid1=hid2tid($item1);
                        
$namemenu1=trim($db->GetField("select menunamepage from $tabname where (id=$tid1[0])"0));
                        
$chpu1=trim($db->GetField("select chpu from $tabname where (id= $tid1[0])"0));
        
//-------------------------------------------------------------------------------------------------------------                
                        
if ($namemenu1 != '') {
                            
$list1 .= $templ->ViewTemplAsVar($item1$tabname9);
                            
$list1 str_replace('[list]''[list1]'$list1);
                            
$list1 str_replace('[id]''id='.$tid[0], $list1);
                            
$list1 str_replace('[class]''class="shortprod submenul"'$list1);
                            if (
$chpu1!="") {
                                
$pos1 strpos($chpu1'http://');
                                if (
$pos1 === false) {
                                    
$list1 str_replace("[chpu]"$root.$chpu1.$dop$list1);
                                } else {
                                    
$list1 str_replace("[chpu]"$chpu1.$dop$list1);
                                }
                            } else {
                                
$list1 str_replace("[chpu]"$root."pages/".$tid1[0].".html".$dop$list1);
                            }
                            
$arr2 getChildrenFrom($item1$tabname);
                            
$list2 '';
                            if (isset(
$arr2[0])) {
                                foreach(
$arr2 as $item2) {
                                    
$tid2=hid2tid($item2);
                                    
$namemenu2=trim($db->GetField("select menunamepage from $tabname where (id=$tid2[0])"0));
                                    
$chpu2=trim($db->GetField("select chpu from $tabname where (id=$tid2[0])"0));
        
//--------------------------------------------------------------------------------------------------------------------
                                    
if ($namemenu2 != '') {
                                        
$list2 .= $templ->ViewTemplAsVar($item2$tabname9);
                                        
$list2 str_replace('[list]''[list2]'$list2);
                                        
$list2 str_replace('[id]''id='.$tid1[0], $list2);
                                        
$list2 str_replace('[class]''class="shortprod submenu2"'$list2);
                                        if (
$chpu2!="") {
                                            
$pos2 strpos($chpu2'http://');
                                            if (
$pos2 === false) {
                                                
$list2 str_replace("[chpu]"$root.$chpu2.$dop$list2);
                                            } else {
                                                
$list2 str_replace("[chpu]"$chpu2.$dop$list2);
                                            }
                                        } else {
                                            
$list2 str_replace("[chpu]"$root."pages/".$tid2[0].".html".$dop$list2);
                                        }
                                        
$arr3 getChildrenFrom($item2$tabname);
                                        
$list3 '';
                                        if (isset(
$arr3[0])) {
                                            foreach(
$arr3 as $item3) {
                                                
$tid3=hid2tid($item3);
                                                
$namemenu3=trim($db->GetField("select menunamepage from $tabname where (id=$tid3[0])"0));
                                                
$chpu3=trim($db->GetField("select chpu from $tabname where (id=$tid3[0])"0));
        
//-------------------------------------------------------------------------------------------------------------------------------------
                                                
if ($namemenu3 != '') {
                                                    
$list3 .= $templ->ViewTemplAsVar($item3$tabname9);
                                                    
$list3 str_replace('[id]''id='.$tid2[0], $list3);
                                                    
$list3 str_replace('[class]''class="shortprod submenu2"'$list3);
                                                    
$list3 str_replace('[list]'''$list3);
                                                    if (
$chpu3!="") {
                                                        
$pos3 strpos($chpu3'http://');
                                                        if (
$pos3 === false) {
                                                            
$list3 str_replace("[chpu]"$root.$chpu3.$dop$list3);
                                                        } else {
                                                            
$list3 str_replace("[chpu]"$chpu3.$dop$list3);
                                                        }
                                                    } else {
                                                        
$list3 str_replace("[chpu]"$root."pages/".$tid3[0].".html".$dop$list3);
                                                    }
                                                }
                                            }
                                        }
                                        if (
$list3 != ''$list3 '<div id="'.$tid2[0].'" class="submenud2">'.$list3.'</div>';//атрибут не может начинаться с цифры
                                        
$list2 str_replace('[list2]'$list3$list2);
                                    
                                        
// четвертый уровень END
                                    
}
                                }
                            }
                            if (
$list2 != ''$list2 '<div id = "'.$tid1[0].'" class="submenud">'.$list2.'</div>'//атрибут не может начинаться с цифры
                            
$list1 str_replace('[list1]'$list2$list1);
                            
                        }
                    }
                    if (
$list1 != ''$list1 '<div id="p_'.$tid[0].'" class="shortprod">'.$list1.'</div>';//атрибут не может начинаться с цифры 
Все бы хорошо, но при таком способе каждый id начинается с цифры (id = "863") и валидатор выдает ошибку. Есть ли способ обойти эту ошибку????
ТАМ вне форума Ответить с цитированием
Старый 03.08.2013, 19:35   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

В последнем случае атрибут начинается с буквы – потому здесь ошибки быть не должно:
Цитата:
Сообщение от ТАМ Посмотреть сообщение
PHP код:
if ($list1 != ''$list1 '<div id="p_'.$tid[0].'" class="shortprod">'.$list1.'</div>';//атрибут не может начинаться с цифры 
Добавить во всех случаях буквенный символ в начало значения id. (id="p_863")
К атрибуту функции обработки наведения мыши – соответственно, тоже нужно добавить такой же символ. (onmouseover="LeftMenuMouseOver1('p _863');")

Последний раз редактировалось Andkorol; 03.08.2013 в 20:05.
Andkorol вне форума Ответить с цитированием
Старый 04.08.2013, 19:03   #3
ТАМ
 
Регистрация: 06.12.2009
Сообщений: 8
По умолчанию

Да все верно, работает. Спасибо. А то я уже букву эту подставляю где только можно, а про синтаксис вообще не думаю апострофы это сила.

onmouseover="LeftMenuMouseOver1('p_{$id}'); return true;"
ТАМ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить значение атрибута (jQuery) Тутонхамон JavaScript, Ajax 2 12.12.2011 14:48
Значение атрибута в CSS halcyon HTML и CSS 3 08.09.2011 08:22
Динамическое редактирование атрибута onclick Max1548 JavaScript, Ajax 2 01.08.2011 18:29
Oracle. Чтение атрибута XML документа shurik_7866 SQL, базы данных 0 23.03.2010 21:38
Присваивание атрибута папке. papa_serg Общие вопросы Delphi 2 05.01.2009 16:45