Вложенные массивы в _POST/_FILES

Тема в разделе "Программирование", создана пользователем Mixer[MsK], 17.03.2009.

  1. Offline

    Mixer[MsK] Недавно здесь

    Регистрация:
    17.03.2009
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте. Возможно мой вопрос покажется глупым - оно и не удивительно, с Joomla я почти не работал. Вопрос мой таков. Потебовалось мне расширить модуль ProductBook так, чтобы он научился добавлять фотографии в нужном мне количестве.

    Для этого в форму добавления/редактирования модели была сделана вставка с файло-INPUT`ом, которому было дано имя n_photo[]. Так же были вставлены две небольшие JS-функции, которые иннером добавляют/убирают поля до необходимого.

    Проблема в том, что после передачи формы сколько бы полей для ввода я не создал в форме - в массив уходит только одно(проверял и print_r`ом и count`ом). Аналогично пытался экспериментировать с простыми INPUT-полями - результат аналогичен.

    Подскажите почему так, может я чего-то не знаю?В не-Joomla конструкциях аналогичные куски кода работаю нормально. Такое ощущение, что из формы перед отправкой вырезается "[]" в именах полей. Заранее благодарю.
     
    Последнее редактирование: 17.03.2009
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
  4. Offline

    Mixer[MsK] Недавно здесь

    Регистрация:
    17.03.2009
    Сообщения:
    6
    Симпатии:
    0
    Код (PHP):
    1. print_r(mosGetParam($_FILES,'n_photo'));


    Так же пробовал напрямую обращаться к массиву $_FILES - ситуация такая же.
     
  5. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    К $_FILES только напрямую.

    Если его вообще нет, то проверь - стоит ли в форме рядом с методом строка enctype="multipart/form-data"
     
  6. Offline

    Mixer[MsK] Недавно здесь

    Регистрация:
    17.03.2009
    Сообщения:
    6
    Симпатии:
    0
    В форме enctype указан. Он есть, но только в одном экземпляре. Остальные строки теряются.
     
  7. infoman
    Offline

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

    Регистрация:
    28.08.2007
    Сообщения:
    575
    Симпатии:
    12
    Пол:
    Мужской
    мож надо насильно ключ элемента массива к каждой n_photo приклеивать?
     
  8. Offline

    Mixer[MsK] Недавно здесь

    Регистрация:
    17.03.2009
    Сообщения:
    6
    Симпатии:
    0
    В форме или в обработчике?В обработчике пробовал - не спасло.
    В форме сей момент крайне неудобен - добавляем 10 полей JS-кнопкой, потом убираем 2-3 из середины и получаем адский гемморой: либо теряем "хвост", либо в принудительном порядки проходим некое количество полей и теряем производительность, а так же получаем костыль в коде.
     
  9. Offline

    Mixer[MsK] Недавно здесь

    Регистрация:
    17.03.2009
    Сообщения:
    6
    Симпатии:
    0
    Уточнение проблемы: если я добавляю два поля в форму изначально, оба отображаются. Если добавляю третье через JS - его в списке не получаю. Может у Joomla есть что-нибудь принудительно парсящее шаблон перед отправкой формы?
     
  10. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Джумла тут ни при чем. Исключительно твои руки. И я так понимаю проблема в том, что твоя JS-вставка вставляет эти поля вне формы, вот они и не отправляются.
     
  11. Offline

    Mixer[MsK] Недавно здесь

    Регистрация:
    17.03.2009
    Сообщения:
    6
    Симпатии:
    0
    Эм. Тогда я видимо чего-то не понимаю:
    1. Форма вложена в таблицу.
    2. Выше и ниже от добавляемых пунктов другие поля, которые обрабатываются корректно(в том числе те, которые потом "размножаются").
    3. JS-вставка на самописной CMS работала нормально при точно таком же использовании.

    Как в таком случае я могу промахивать мимо формы?

    P.S. Хотя я готов уже во всё поверить - разумного объяснения происходящему пока подобрать не удалось.
     
  12. infoman
    Offline

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

    Регистрация:
    28.08.2007
    Сообщения:
    575
    Симпатии:
    12
    Пол:
    Мужской
    если форма формируется под js с возможностью добавления псевдополей то и обработчик формы должен быть в js с пере направлением обработанных псевдополей....
    он с начало примет на себя все var и сформирует get или post запрос на принимающий php скрипт
    красивее и понятней только ajax может работать....
     

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

Загрузка...