Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 мар 2024, 18:32

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 16 авг 2012, 10:53 
Не в сети
Бывалый

Зарегистрирован: 11 июл 2012, 00:30
Сообщения: 31
1) При добавлении категорий в БД они у меня выбираются с помощью чекбоксов, вот так генерируются эти чексбоксы а при редактировании, нужно чтоб они также выводились, только выбранные до этого были уже выделены. Если мы убераем с этого пункта галочку, то он должен удаляться, иначе добавляться новый.
Код:
 class Model_Genres extends Model
    {
        function all_genres()
        {
            $result = DB::select('*')->from('genres')->execute()->as_array();
            return $result;
        }
        function get_tree($cats, $pid)
        {
            $html = '';
         
            foreach ($cats as $cat)
            {
                if ($cat['parent_id'] == $pid)
                {
                    if ($cat['parent_id'] == 0)
                        $hr = '';
                    else
                        $hr = '';
                   
                    $html .= "\n";
                    $html .= $hr . Form::checkbox('incats[' . $cat["id"] . '] ', $cat['id']) . $cat['name'] . $hr . "\n";
                    $html .= $this->get_tree($cats, $cat['id']);
                    $html .= "\n";
                }
            }
         
            return $html ? $html . "\n" : '';
        }
    }

Вот промежуточная таблица, у одного фильма может быть несколько подкатегорий
Код:
    id  video_id    incat_id 
            5   9   5
            6   10  133
            7   11  1
            8   11  3
            9   11  5
            10  11  7
            11  14  1
            12  14  18
            13  14  20
            14  14  33
            15  14  3
            16  15  16


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 авг 2012, 12:08 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Сформируйте правильно вопрос


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 авг 2012, 13:51 
Не в сети
Бывалый

Зарегистрирован: 11 июл 2012, 00:30
Сообщения: 31
Sergey писал(а):
Сформируйте правильно вопрос

В кратце: у меня при загрузке видео выбераются категории с помощью чекбоксов, а потом сохраняются в промеежуточную таблицу(ORM, связь многие к многим). Так вот иногда нужно редактировать эти категории, а следовательно нужно вывести на монитор чекбоксы с названиями категорий, только теперь уже выбранные до этого категории должны быть с галочкой() активный чекбокс.Это первая сложность, сделать активные чекбоксы. Вторая проблема посложней, если допустим пользовать добавит одну новую категорию, то в промежуточную таблицу повторно прийдется заносить прошлые категории и таблицы их будет по 2 записи, а если редактировать раз 5, то уже их будет пять...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 авг 2012, 15:03 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
poter писал(а):
В кратце: у меня при загрузке видео выбераются категории с помощью чекбоксов, а потом сохраняются в промеежуточную таблицу(ORM, связь многие к многим). Так вот иногда нужно редактировать эти категории, а следовательно нужно вывести на монитор чекбоксы с названиями категорий, только теперь уже выбранные до этого категории должны быть с галочкой() активный чекбокс.


Вы очень всё усложняете.

poter писал(а):
Это первая сложность, сделать активные чекбоксы.


Например так:

Контролёр
Код:
...
  $model = ORM::factory('model_name', (int) $id);
  $group = $model->myfunc->find_all()->as_array('item_id', 'item_text');   
  $groups = ORM::factory('groups')
                ->find_all()
                ->as_array('item_id', 'item_text');

  $content = View::factory('myview')
                 ->set('group', $group)
                 ->set('groups', $groups);


Вид
Код:
  foreach($groups as $item_id => $item_text)
...
  {
    echo Form::checkbox('groups['.$item_id.']', $item_text, (in_array($item_id, $group) ? true : false)) . ucfirst($item_text);
  }


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 авг 2012, 18:53 
Не в сети
Бывалый

Зарегистрирован: 11 июл 2012, 00:30
Сообщения: 31
Sergey писал(а):
poter писал(а):
В кратце: у меня при загрузке видео выбераются категории с помощью чекбоксов, а потом сохраняются в промеежуточную таблицу(ORM, связь многие к многим). Так вот иногда нужно редактировать эти категории, а следовательно нужно вывести на монитор чекбоксы с названиями категорий, только теперь уже выбранные до этого категории должны быть с галочкой() активный чекбокс.


Вы очень всё усложняете.

poter писал(а):
Это первая сложность, сделать активные чекбоксы.


Например так:

Контролёр
Код:
...
  $model = ORM::factory('model_name', (int) $id);
  $group = $model->myfunc->find_all()->as_array('item_id', 'item_text');   
  $groups = ORM::factory('groups')
                ->find_all()
                ->as_array('item_id', 'item_text');

  $content = View::factory('myview')
                 ->set('group', $group)
                 ->set('groups', $groups);


Вид
Код:
  foreach($groups as $item_id => $item_text)
...
  {
    echo Form::checkbox('groups['.$item_id.']', $item_text, (in_array($item_id, $group) ? true : false)) . ucfirst($item_text);
  }

спасибо, но со вторым как разобраться ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 авг 2012, 21:17 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
poter писал(а):
Вторая проблема посложней, если допустим пользовать добавит одну новую категорию, то в промежуточную таблицу повторно прийдется заносить прошлые категории и таблицы их будет по 2 записи, а если редактировать раз 5, то уже их будет пять...


Я вообще не понял что (и зачем) вы хотите сделать


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 авг 2012, 23:33 
Не в сети
Бывалый

Зарегистрирован: 11 июл 2012, 00:30
Сообщения: 31
Sergey писал(а):
poter писал(а):
Вторая проблема посложней, если допустим пользовать добавит одну новую категорию, то в промежуточную таблицу повторно прийдется заносить прошлые категории и таблицы их будет по 2 записи, а если редактировать раз 5, то уже их будет пять...


Я вообще не понял что (и зачем) вы хотите сделать

Можете дать аську или скайп, я постараюсь разьяснить, здесь эта тема может длиться бесконечно =( а мне хочется побыстрей разобраться :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 авг 2012, 23:44 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Контакты в профиле


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group