За последние 24 часа нас посетили 17534 программиста и 1723 робота. Сейчас ищет 1691 программист ...

Использование элемента <select> как таблицы

Тема в разделе "JavaScript и AJAX", создана пользователем enshtein, 6 ноя 2006.

  1. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    Пишу системку заполнения платежных документов через сайт - т.е. веб-форма работающая с БД MySQL - сохраняющая вводимые через нее документы и т.д.

    Кто встречался с 1С знает как там устроены формы заполнения документов - как правило там есть шапка и табличная часть, так вот с шапкой проблем нет - это как правило комбинация различных элементов html-формы (checkbox, button, text, radio и т.д.), а вот табличная часть - это проблема для меня!

    Пока остановился на том что бы использовать элемент <select> т.е. примерно так:
    Код (Text):
    1. <select name="spisok" multiple size="20" style="width:100%">
    2. <option>Заголовок 1 | Заголовок 2 | Заголовок 3 | Заголовок 4
    3. <option>Данные        | Данные        | Данные       | Данные
    4. </select>
    так вот это подобие таблицы, которую я хочу заполнять прямо в броузере - т.е на основе javascript, чтобы пользователь мог добавить, удалить запись и т.д. и все с помощью javascript!

    Мой вопрос - как это сделать? ПРиведите если не сложно кусок кода - а то что-то не найду! И вообще может кто встречался с такими проблемами и решил их более цивилизованным путем???
     
  2. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Извини, кодом не поделюсь: корпоративная тайна ;)

    Но идея вот:
    Табличная часть, естественно, делается таблицей (круто, да?).
    Ввод в ячейку осуществляется втыкиванием в эту ячейку (с помощью JavaScript) <input type="text"> и, если есть кнопка выбора, <button. Если
    то список, то соотв, впихивается селект.
    Кнопка выбора открывает либо окно, либо <div> поверх всего (мы ушли от окна, поскольку 1. многооконный интерфейс; 2. оно не позволяет блокировать родительское окно).
    Сразу советую делать заголовки в <thead>, а данные в <tbody>. Причем если документ имеет много табличных частей (головная боль 1С), то можно использовать несколько tbody или несколько таблиц (зависит от ситуации). Итоговые данные (общая сумма и т.п.) лучше засунуть в <tfooter>. Все эти ухищрения нужны только для удобства программирования вставки/извлечения данных.

    Ну и без AJAX тут плохо, т.е. никуда :)

    А каким боком использовать select для табличной части - я не понял... :shock:
     
  3. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    Просто я думал выводить таблицу именно в <select> - ведь там удобно выделять строки и т.д. более того если воткнуть в <form></form> и разделять в строках поля любым символом например | , то потом легче парсить для того чтобы засунуть все это в БД через запрос!
     
  4. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Проще и лучше забыть о формах и использовать AJAX.
     
  5. meganosets

    meganosets Активный пользователь

    С нами с:
    13 июл 2006
    Сообщения:
    47
    Симпатии:
    0
    Для таких дел идеально подходит AJAX
     
  6. Anonymous

    Anonymous Guest

    Радует, что не я один такой извращенец... а родительское окно поди полупрозрачным гифом блокируете? =)
     
  7. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Я тут наткнулся на такую вещь, как аргумент useCapture функции addEventListener. http://developer.mozilla.org/en/docs/DOM:element.addEventListener
    Надобудет попробовать его понять и поюзать.
     
  8. Anonymous

    Anonymous Guest

    AlexGousev, отнюдь! Хотел лишь убедиться, что я не одинок =)))