Joomla 1.5 Сохранение динамических input-ов в БД

Тема в разделе "Программирование", создана пользователем cadavre, 17.10.2011.

  1. Offline

    cadavre Недавно здесь

    Регистрация:
    28.09.2011
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Привет

    Никак не допишу компонент (MVC), появилась очередная проблема: есть ли в Джумле какие-то средства, которые позволяют сохранять динамические инпуты в БД?
    Т.е. нажимаю "Добавить", js-функция дорисовывает к форме инпуты, неограниченное кол-во, жмешь в тулбаре "Сохранить", данные летят в БД.

    Структура таблицы (тестовая): id, value_1, value_2

    Как это выглядит, можно увидеть в аттаче.

    Как сохранить значение одиночного инпута в БД, я знаю, а вот когда их много, возникают проблемы. Как подписать во view (id name) и т.д.

    Есть только идея: собрать все инпуты в массив (пока не знаю, каким образом), и в store() в цикле создавать новые записи, что-то на подобии:

    Код (PHP):
    1. public function store() {
    2.     $obj = new new stdClass();
    3.  
    4.     $id = JRequest::getVar('id');
    5.  
    6.     //здесь как-то привязывается массив со значением инпутов, например, $inputsArray
    7.    
    8.     foreach ($inputsArray as $single) {
    9.         $obj->id = $id;
    10.         $obj->value_1 = $single; // закинули все в ряд value_1        
    11.         $obj->value_2 = $single; // закинули все в ряд value_2. допустим сюда кидаем все элементы массива с ключем value_2
    12.         $this->_db->updateObject('#__test_table', $obj, 'id');
    13.     }
    14. }


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

    Вложения:

    • screen.jpg
      screen.jpg
      Размер файла:
      14.4 КБ
      Просмотров:
      3
  2.  
  3. Offline

    Neka Недавно здесь

    Регистрация:
    21.07.2010
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Со встроенными классами жумлы не работал, но вдруг чем-нибудь помогу
    Код (html):
    1. <input type="text" name="input[1]" />
    2. <input type="text" name="input[2]" />

    Получаем
    Код (PHP):
    1. echo "1. ".$_GET["input"][1]."2. ".$_GET["input"][2]
     
  4. Offline

    cadavre Недавно здесь

    Регистрация:
    28.09.2011
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Одиночные инпуты теперь сохраняет
    если добавляю еще строку, то в БД летят последние данные
    нужно как-то составить массив вида:

    Код (CODE):
    1. Array(
    2.     [value_1] => Array(
    3.                             [0] => something
    4.                             [1] => something
    5.                         )
    6.     [value_2] => Array(
    7.                             [0] => something
    8.                             [1] => something
    9.                         )
    10. )

    Может с помощью bind() это можно как-то сделать?
     
  5. Offline

    cadavre Недавно здесь

    Регистрация:
    28.09.2011
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Вопрос решен, тему можно закрывать
     

Поделиться этой страницей

Загрузка...