<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Выпадающее меню из БД
22.03.2013 22:47:20 Выпадающее меню из БД Сообщение #1
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

Делаю меню в движке из уроков по PHP. И возник такой вопрос: как из одной функции передать значение переменной в другую?
А именно: я добавил метод getListMenu, и именно в него нужно передать переменную i.
protected function getMenu() {
$menu = $this->menu->getAll();
for ($i = 0; $i < count($menu); $i++) {
$sr["title"] = $menu[$i]["title"];
$sr["link"] = $menu[$i]["link"];
$text .= $this->getReplaceTemplate($sr, "menu_item";
$list_menu = $this->getListMenu($i);
}
return $text;
}
protected function getListMenu() {
$list_menu = $this->list_menu->getAllOnField("menu_id", $i);
for ($j = 0; $j <count($list_menu); $j++) {
$sr["title"] = $list_menu[$j]["title"];
$sr["link"] = $list_menu[$j]["link"];
$text .= $this->getReplaceTemplate($sr, "menu_list";
}
return $text;
}

Если вместо i подставлю число, то все работает, но соответственно у каждого пункта меню выпадает список с пунктами которые должны быть только у пункта меню у которого id соответствует числу которое я ставлю.
Вот и как и ее передать? И есть ли какие нибудь замечания или предложения по моему решению?
Профиль Ответить
22.03.2013 22:56:28 Выпадающее меню из БД Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

protected function getListMenu($i) { - вот так и передаётся. Если всё это будет работать, то никаких проблем я тут не вижу.
Профиль Ответить
23.03.2013 05:50:23 Выпадающее меню из БД Сообщение #3
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

я уже так делал, появлялась ошибка. сейчас в getContent()в $sr["list_menu"] = $this->getListMenu() поставил $i в скобки. ошибка исчезла, но по прежнему ничего не выводится. а конкретно число ставлю, то выводится
Профиль Ответить
23.03.2013 07:12:57 Выпадающее меню из БД Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Покажите текст ошибки.
Профиль Ответить
23.03.2013 10:38:52 Выпадающее меню из БД Сообщение #5
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

Warning: Missing argument 1 for Modules::getListMenu(), called in Z:\home\projectrem\www\lib\modules_class.php on line 50 and defined in Z:\home\projectrem\www\lib\modules_class.php on line 74
Профиль Ответить
23.03.2013 11:44:36 Выпадающее меню из БД Сообщение #6
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

может здесь нужно как то getListMenu в getMenu вставить?

public function getContent() {
...
$sr["menu"] = $this->getMenu();
$sr["list_menu"] = $this->getListMenu($i);
...
}
Профиль Ответить
23.03.2013 15:03:01 Выпадающее меню из БД Сообщение #7
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Missing argument 1 for Modules::getListMenu() - это означает, что при вызове getListMenu() не был передан параметр.
Профиль Ответить
23.03.2013 15:19:32 Выпадающее меню из БД Сообщение #8
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

а когда я его здесь вставляю ошибка исчезает, но ничего не работает.
public function getContent() {
...
$sr["menu"] = $this->getMenu();
$sr["list_menu"] = $this->getListMenu($i);
...
}

а также в самой функции поставил.
почему он не передается? как его правильно передать?
Профиль Ответить
23.03.2013 15:20:29 Выпадающее меню из БД Сообщение #9
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Всё правильно Вы передаёте, и он должен передаваться. Смотрите значения переменных: http://myrusakov.ru/php-finderror.html
Профиль Ответить
23.03.2013 16:54:16 Выпадающее меню из БД Сообщение #10
ghost_t91aa

ghost_t91aa

Освоившийся

Освоившийся

Дата регистрации:
15.03.2013 18:46:55

Сообщений: 23

в общем переменная передается нормально, это что то с функцией. Например эта функция
protected function getMenu() {
$menu = $this->menu->getAll();
for ($i = 0; $i < count($menu); $i++) {
$sr["title"] = $menu[$i]["title"];
$sr["link"] = $menu[$i]["link"];
$text .= $this->getReplaceTemplate($sr, "menu_item";
print_r($text);
$list_menu = $this->getListMenu($menu[$i]["id"]);
}
return $text;
}
выводит вот что:

Главная
%list_menu%

Главная
%list_menu%

Квартира
%list_menu%

Главная
%list_menu%

Квартира
%list_menu%

Дома и коттеджи
%list_menu%

должно же без повторений быть. вторая функция также выполняется. все формируется но выводится через getReplaceTemplate.

protected function getListMenu($i) {
$list_menu = $this->list_menu->getAll();
echo $i;
for ($j = 0; $j < count($list_menu); $j++) {
if ($list_menu[$j]["menu_id"] == $i) {
$sr["title"] = $list_menu[$j]["title"];
$sr["link"] = $list_menu[$j]["link"];
$text .= $this->getReplaceTemplate($sr, "menu_list";
echo $text;
}
}
return $text;
}

а вот что получается:

12
Пол
Пол
Стены
Пол
Стены
Потолок
3
Фундамент
Фундамент
Стены
Профиль Ответить