imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 17.10.2006, 21:13     # 1
S&S
Guest
 
Сообщения: n/a

Post DHTMLMenu 6 and JavaScript+ php, динамическое меню

Проблема в следующем с помощью программы DHTMLMenu 6 создаю JavaScript динамическое меню т.е все его поля загружаются из базы данных с помощью языка php и если JavaScript меню разместить в отдельном js файле и подключить к html документу то меню не появляется ,а если его скрипт непосредственно встроить в html документ то все работает нормально
Пример скрипта встроенного в html документ
PHP код:
<?php  $connect=mysql_connect("localhost","root","") or die("Could not connect: " mysql_error());  mysql_select_db("allpricelistbox",$connect) or die ('Can\'t use dhtmlmenu : ' mysql_error());  $category=mysql_query("SELECT * FROM Show_poll");  ?>  <HTML>  <BODY>  <TITLE> New Document </TITLE>  <META NAME="Generator" CONTENT="EditPlus">  <META NAME="Author" CONTENT="">  <META NAME="Keywords" CONTENT="">  <META NAME="Description" CONTENT="">  <script type="text/javascript" language="JavaScript1.2" src="file:///C|/WebServers/home/menu.ru/www/stmenu.js"></script>  </HEAD>  <BODY>  <script type="text/javascript" language="JavaScript1.2">  <!--  stm_bm(["menu75de",600,"file:///C|/WebServers/home/menu.ru/www","blank.gif",0,"","",0,0,250,0,1000,1,0,0,"","",0,0,1,2,"default","hand","file:///C|/WebServers/home/menu.ru/www/"],this);  stm_bp("p0",[1,4,0,0,2,3,0,0,100,"",-2,"",-2,50,0,0,"#999999","#FFFFF7","",3,1,1,"#000000"]);    <?php  while($r_category=mysql_fetch_array($category))    $Name $r_category["name_poll"];  ?>  stm_ai("p0i0",[1,"<?= $Name ?>","","",-1,-1,0,"","_self","","","","",0,0,0,"","",0,0,0,0,1,"#FFFFF7",0,"#B5BED6",0,"","",3,3,1,1,"#FFFFF7","#000000","#000000","#000000","8pt Verdana","8pt Verdana",0,0]);  <?php  }  ?>  stm_ep();  stm_em();  //-->  </script>    </BODY>  </HTML>  <?php  mysql_close($connect)  ?>
Пример скрипта в отдельном файле js
Файл menu_tr.js
Код:
stm_bm(["menu75de",600,"","blank.gif",0,"","",0,0,250,0,1000,1,0,0,"","",0,0,1,2,"default","hand",""],this);  stm_bp("p0",[1,4,0,0,2,3,0,0,100,"",-2,"",-2,50,0,0,"#999999","#FFFFF7","",3,1,1,"#000000"]);    <?php  while($r_category=mysql_fetch_array($category))  {  $Name = $r_category["name_poll"];  ?>    stm_ai("p0i0",[1,"<?= $Name ?>","","",-1,-1,0,"","_self","","","","",0,0,0,"","",0,0,0,0,1,"#FFFFF7",0,"#B5BED6",0,"","",3,3,1,1,"#FFFFF7","#000000","#000000","#000000","8pt Verdana","8pt Verdana",0,0]);    <?php  }  ?>    stm_ep();  stm_em();
Подключение файла menu_tr.js в html
Код HTML:
<?php  $connect=mysql_connect("localhost","root","") or die("Could not connect: " . mysql_error());  mysql_select_db("allpricelistbox",$connect) or die ('Can\'t use dhtmlmenu : ' . mysql_error());  $category=mysql_query("SELECT * FROM Show_poll");  ?>  <HTML>  <BODY>  <TITLE> New Document </TITLE>  <META NAME="Generator" CONTENT="EditPlus">  <META NAME="Author" CONTENT="">  <META NAME="Keywords" CONTENT="">  <META NAME="Description" CONTENT="">  <script type="text/javascript" language="JavaScript1.2" src="file:///C|/WebServers/home/menu.ru/www/stmenu.js"></script>  </HEAD>    <BODY>  <script type="text/javascript" language="JavaScript1.2" src="file:///C|/WebServers/home/menu.ru/www/menu_tr.js"></script>  </BODY>  </HTML>  <?php  mysql_close($connect)  ?>
ГДЕ Глюк
в архиве скрипт
Вложения
Тип файла: rar www.rar (6.0 Кбайт, 0 просмотров )
 
Старый 18.10.2006, 14:08     # 2
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
У тебя в js файле php код. Наверно сервер его не обрабатывает.
EvroStandart вне форума  
Старый 18.10.2006, 20:14     # 3
<Descriptor>
Junior Member
 
Регистрация: 27.09.2004
Сообщения: 51

<Descriptor> Путь к славе только начался
Наверное надо файл menu_tr.js переименовать в menu_tr.php
А в HTML-файле, соответственно, написать <script type="text/javascript" language="JavaScript1.2" src="file:///C|/WebServers/home/menu.ru/www/menu_tr.php">
А ещё лучше: <script type="text/javascript" language="JavaScript1.2" src="menu_tr.php">
<Descriptor> вне форума  
Старый 18.10.2006, 21:20     # 4
S&S
Guest
 
Сообщения: n/a

Цитата:
Сообщение от EvroStandart
У тебя в js файле php код. Наверно сервер его не обрабатывает.
Дело в том что сам редактор DHTMLMenu 6 вставляет php код в js файл и создает все файлы.
Цитата:
Сообщение от Descriptor
Наверное надо файл menu_tr.js переименовать в menu_tr.php А в HTML-файле, соответственно, написать <script type="text/javascript" language="JavaScript1.2" src="file:///C|/WebServers/home/menu.ru/www/menu_tr.php"> А ещё лучше: <script type="text/javascript" language="JavaScript1.2" src="menu_tr.php">
Переименовывал но результат тот же, мне кажется, что переменные php которые используются в js файле не проинициализированы иного объяснения тому, что при использовании внешнего js файла код не работает, а при вставки его в страницу все работает я не нахожу. Но почему они не проинициализированы ?? ведь весь код создает этот редактор я не догоняю.
 
Старый 19.10.2006, 13:16     # 5
<Descriptor>
Junior Member
 
Регистрация: 27.09.2004
Сообщения: 51

<Descriptor> Путь к славе только начался
Цитата:
S&S:
Дело в том что сам редактор DHTMLMenu 6 вставляет php код в js файл и создает все файлы.
Но он при этом не может знать, как настроен твой сервер.

Цитата:
S&S:
использовании внешнего js файла код не работает
А путь до файла ты проверил? А то у тебя в твоём первоначлаьном примере был указан абсолютный путь в windows.
<Descriptor> вне форума  
Старый 19.10.2006, 15:58     # 6
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Цитата:
S&S:
мне кажется, что переменные php которые используются в js файле не проинициализированы
Они и не могут быть проинициализированы. Если броузер подгружает другой файл, код в том файле выполняется отдельно. Скорее всего на момент его запуска выполнение основного файла закончилось. А если не закончилось, они должны попасть в разные потоки (или как там это называется...).

В общем, бери первый пример, вырезай скрипт, а на его место пропиши include "js.php";
и будет тебе счастье.
EvroStandart вне форума  
Старый 19.10.2006, 17:19     # 7
<Descriptor>
Junior Member
 
Регистрация: 27.09.2004
Сообщения: 51

<Descriptor> Путь к славе только начался
Цитата:
EvroStandart:
а на его место пропиши include "js.php";
Это не рационально :-) Просто надо сделать так, чтобы js.php работал. А уж потом подключать его как скрипт.
Если для работы этого файла нужны какие-то переменные по результатам работы основного скрипта, то нужно задумать о передаче этих переменных.
Или, если это возможно, вычислять все нужные переменные прямо в js.php.
<Descriptor> вне форума  
Старый 20.10.2006, 10:47     # 8
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Цитата:
<Descriptor>:
вычислять все нужные переменные прямо в js.php.
Так в чём проблема? Стираеш из первого примера весь хтмл и записываеш как js.php - тогда можно его подгружать как ты уже пробовал.
EvroStandart вне форума  
Старый 20.10.2006, 13:33     # 9
<Descriptor>
Junior Member
 
Регистрация: 27.09.2004
Сообщения: 51

<Descriptor> Путь к славе только начался
Цитата:
EvroStandart:
Так в чём проблема? Стираеш из первого примера весь хтмл и записываеш как js.php - тогда можно его подгружать как ты уже пробовал.
Я. собственно, примерн то же самое и предлагаю.
Ну, конечно не так тупо и прямолинейно. Придётся убрать не только HTML, но и многое другое из php-кода, что для JavaScript-меню не нужно. Самое главное - лишние запросы в базу (если они там есть, конечно).
<Descriptor> вне форума  
Старый 20.10.2006, 14:12     # 10
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Цитата:
<Descriptor>:
Ну, конечно не так тупо и прямолинейно.
Если ты такой умный, может распишеш по пунктам что надо делать и на какие кнопки нажимать?

Цитата:
<Descriptor>:Придётся убрать не только HTML, но и многое другое из php-кода, что для JavaScript-меню не нужно.
Судя по этой надписи, ты сам код не смотрел и не представляеш что он делает.
Объясняю для ленивых. В первом файле автоматически сгенерированный код для меню. В начале файла делается выборка категорий из базы. Внутри яваскрипта эти категории вставляются через пхп. Больше там ничего не происходит. Соответственно, если убрать весь хтмл там как раз останется только то что нужно.
EvroStandart вне форума  
Старый 20.10.2006, 15:34     # 11
S&S
Guest
 
Сообщения: n/a

Цитата:
Сообщение от <Descriptor>
А путь до файла ты проверил? А то у тебя в твоём первоначлаьном примере был указан абсолютный путь в windows.
путь я потом указал как нужно но результат тот же
Может просто так организованные меню нельзя подгружать из внешнего js файла потому, что в примере который находиться по адресу http://www.sothink.com/product/treemenu/samples/php/phpdb.php для проги DHTMLMenu я не встречал такого, код там непосредственно вставлялся в страницу.
 
Старый 20.10.2006, 16:46     # 12
<Descriptor>
Junior Member
 
Регистрация: 27.09.2004
Сообщения: 51

<Descriptor> Путь к славе только начался
Цитата:
S&S:
просто так организованные меню нельзя подгружать из внешнего js файла
Такого быть по определнию не может.
Давай для начала выясним: в файле js.php генерируется Javascript (уже на выходе, после работы сервера)? Он в точности соответствует тому, что получается при вставке в страницу?

Цитата:
EvroStandart:
Судя по этой надписи, ты сам код не смотрел и не представляеш что он делает.
Сам код я смотрел. Насколько это возможно при таком его представлении. Всё написано в 1 строку с длинной-длинной горизонтальной прокруткой.
Цитата:
EvroStandart:
В начале файла делается выборка категорий из базы. Внутри яваскрипта эти категории вставляются через пхп. Больше там ничего не происходит. Соответственно, если убрать весь хтмл там как раз останется только то что нужно.
Очень замечательно. О "лишнем" я написал на тот случай, если тут приведён не весь код.
<Descriptor> вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 22:01.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.