За последние 24 часа нас посетили 22536 программистов и 1144 робота. Сейчас ищут 627 программистов ...

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

Тема в разделе "PHP для новичков", создана пользователем savsoft, 28 июн 2018.

Метки:
  1. savsoft

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

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Всем привет.

    Сделал несколько скриптов на php, но возникла проблема. Если значение необходимо выбирать из таблицы-справочника, то для небольших справочников можно формировать select. Но как быть с большими справочниками, в которых необходим поиск? Куда смотреть?
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Ну, например, можно сделать всплывающую форму поиска на ajax'е.
    --- Добавлено ---
    Или всплывающий список с пагинацией.
    --- Добавлено ---
    Или и то, и другое вместе.
     
  3. savsoft

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

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Это буду учить, а если пока сделаю тупо на php? Хранить выбранные значения в сессии. Пользователей именно этого функционала не более двух, так что сервер нагружен не будет. Нет тут каких-либо подводных камней?
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Как дофига значений отображать планируете? Основной вопрос, как я понял, именно в этом.
     
  5. savsoft

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

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Грубо говоря, есть две таблицы по несколько тысяч записей (Т1 и Т2), и нужно в третью таблицу добавить дату, еще пару полей и по одному значению из таблиц Т1, Т2.
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    И? Что вам нужно, я понял. Я у вас спросил, как вы собираетесь большие справочники пользователю показывать, если только не предложенными мной способами?
    --- Добавлено ---
    В принципе их можно целиком отправлять со страницей, чтобы не использовать ajax, но это будет слишком большая и по большей части бесполезная нагрузка.
    --- Добавлено ---
    ...А отображать тем же способом, о котором я выше писал.
    --- Добавлено ---
    Или сделать «перекрытие» на всю страницу и отображать все элементы справочника разом. Все равно они уже все доставлены клиенту :)
     
  7. savsoft

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

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Я не успею выучить javascript за несколько дней, а сделать нужно сейчас какой-нибудь временный вариант. Думаю хранить в сессии id обрабатываемой записи и по кнопке вызова справочника открывать новую страницу с данными справочника, и с возможностью поиска. После выбора значение заносится в сессию и открывается страница с данными записи с сохраненным id, но уже с выбранным полем из справочника. Для юзера создается иллюзия, что он вернулся на предыдущую страницу после выбора записи из справочника.
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Костыль. Данные основной формы могут быть изменены, но не сохранены. Тогда уж лучше сделать многоэтапный диалог, где данные из справочников будут выбираться на первых этапах.
     
  9. savsoft

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

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Можно и многоэтапная форма, но в моем случае костыль тогда лучше подходит. Да и при вызове справочников можно сохранять в сессии данные формы, а при возврате - восстанавливать.
     
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Я говорю, что пользователь может успеть что-то отредактировать в форме, прежде чем обратиться к справочникам. Тогда внесенные им изменения будут потеряны. Подобные изменения можно отлавливать опять-таки только на JS, поэтому я вам и предложил реализовать работу со справочниками обязательно на первых этапах диалога.
    --- Добавлено ---
    P.S. При выборе элементов в справочниках можно спокойно обойтись без каких-либо хранилищ. При выборе очередного элемента добавляйте его идентификатор к адресу след. диалога.
     
  11. savsoft

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

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Перед вызовом справочника можно сохранять введенные данные в сессии, а потом восстанавливать.
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Ну вперед. Если кому-то что-то непонятно в сказанном мной, это его проблемы. Разжевывать я не нанимался.