Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Динамическое меню
 
 автор: Serg9   (19.04.2005 в 13:02)   письмо автору
 
 

Я делал страничку на основе таблицы. Меню я поместил в отдельный текстовый файл, в нем 1-я и 2-я строки не используются, но присутствует текст, в 3-й строчки число - количество пунктов меню, дальше идет на каждое меню по 3 строчки. Первая строчка меню это сам текст меню, а остальные - дополнительная информация. Этот файл я считываю в самом начале в массив при помощи:

$mmenu = file ("menu00.php");

Потом в том месте, где должен вывести меню делаю нечто вроде:

for ($i=1; $i<=$mmenu[2]; $i++) {
    $j=$i*3;
    echo "<a href=\"index.php ?&mmm=".$i."\">".$mmenu[$j]."</a><br>";
    if ($mmenu[$j+2]==1) echo "<hr>";
}

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

    echo "<a href=\"index.php ?&mmm=".$i."\">".$mmenu[$j]."</a><br>";

на

    echo "<a href=\"index.php ?&mmm=".$i."\">".$j."</a><br>";

все прекрасно выводится.
Пожалуста объясните почему так происходит, и как это сделать правильно.
Я проверяю на локальной машине, среда Windows 2000, установлены Apache 2 и php 5

   
 
 автор: cheops   (19.04.2005 в 21:34)   письмо автору
 
   для: Serg9   (19.04.2005 в 13:02)
 

А в $mmenu[$j] нет других тэгов? Вообще что в них?

   
 
 автор: Serg9   (21.04.2005 в 08:49)   письмо автору
 
   для: cheops   (19.04.2005 в 21:34)
 

В него при помощи file () считывается содержимое файла в виде массива строк примерно следующего вида:

<?php
die ()
3
Меню-1
page_1.php
1
Меню-2
page_2.php
1
Меню-3
page_3.php
1
?>

Где первые две строчки это на всякий случай, следующая строка - цифра 3 это число пунктов меню, потом идут элементы меню состоящие из 3-х строк каждый, из них: 1-я строка - Само меню, вторая строка - страничка, которая будет загружаться, 3-я строка - служебная информация.

   
 
 автор: cheops   (21.04.2005 в 12:05)   письмо автору
 
   для: Serg9   (21.04.2005 в 08:49)
 

Создал файл, следующего содержания
<?php
$mmenu 
file ("menu00.php"); 
for (
$i=1$i<=$mmenu[2]; $i++) { 
    
$j=$i*3
    echo 
"<a href=\"index.php ?&mmm=".$i."\">".$mmenu[$j]."</a><br>"
    if (
$mmenu[$j+2]==1) echo "<hr>"

?>

Работает без вопросов. У вас точно ничего больше в скрипте нет? Особенно между вызовом file и циклом, может массив затирается или засоряется другими значениями?

   
 
 автор: Serg9   (22.04.2005 в 13:12)   письмо автору
 
   для: cheops   (21.04.2005 в 12:05)
 

Я сегодня сново вернулся у себя к этому моменту и у меня заработало. Извините, за то, что вы теряли на мой вопрос время, но я так и не понял, почему тогда не работало, а сейчас работает.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования