Это очень сложная проблема для описания.
Большая картинка:
Ajaxed диалог отправляет на страницу, чтобы создать новую запись набора содержимого. После создания записи набора содержимого этот вновь созданный набор содержимого должен быть выбранным набором содержимого, а ко всему создаваемому или измененному содержимому должен быть присоединен новый идентификатор набора содержимого. Идентификатор набора содержимого создается с использованием поля автоинкремента в MySQL во время загрузки страницы.
Детали проблемы:
У меня есть страница, которая использует ajax, чтобы открыть диалог создания набора контента. Диалог отправляется на пустой URL, потому что он может быть вызван из более чем одного места, и я хочу, чтобы диалог отправлялся на любой URL, с которого он был вызван. После того, как диалог отправляется на страницу, с которой он был вызван, некоторый PHP на странице создает запись набора содержимого в базе данных MySQL. Мне нужно, чтобы идентификатор вставки вновь созданной записи передавался со страницы на страницу с помощью переменной GET (самый простой метод, поскольку я уже передал переменные разбиения на страницы таким образом), но поскольку страница должна загружаться, прежде чем я смогу получить идентификатор вставки, у меня нет способ заполнения всех мест, где должна находиться переменная GET (по ссылкам на страницы, переменная php $ _GET, URL).
Некоторые вещи, которые следует учитывать:
- Я бы передавал вновь созданный идентификатор вставки через переменную сеанса, за исключением того, что это вызывает проблемы, когда кто-то нажимает кнопку «Назад», и переменная сеанса не возвращается к своему предыдущему значению.
- Я бы использовал Javascript и PHP для изменения различных мест, где используется эта переменная id вставки, за исключением того, что если они открывают другой ajaxed-диалог, отправляющий пустой URL-адрес, пустой URL-адрес, конечно, не будет иметь новую переменную GET. Кроме того, это кажется очень небрежным и было бы кошмаром для поддержания.
- Я бы после создания записи перенаправил бы обратно на ту же страницу после добавления новой переменной GET, за исключением того, что я не смог бы пропустить переменные POST, что сделало бы сообщения об ошибках и успехах полной болью в заднице. Я не хотел бы использовать GET-переменные, чтобы сообщить странице, какое сообщение об ошибке / успехе отображать, потому что GET-переменные передаются вокруг страницы на страницу, используя $ _SERVER ['QUERY_STRING'], а также пустые ссылки.
- Я не мог просто сделать вновь созданный Content Set автозагрузкой после создания. Это заставляет пользователя выполнить дополнительный шаг загрузки вновь созданного набора содержимого, чего я бы хотел избежать.
Есть ли какое-нибудь элегантное решение для этого? Эта проблема может быть очень уникальной из-за того, как настроен веб-сайт, но кто-то должен иметь дело с чем-то подобным. Я надеюсь, что мне не придется слишком сильно менять дизайн сайта, чтобы решить эту маленькую проблему. Любые идеи приветствуются.