Отправка нескольких форм одновременно с Ajax - PullRequest
2 голосов
/ 15 сентября 2009

Это вопрос технического проектирования, а не вопрос синтаксиса.

У меня большая страница с 9 формами, соответствующими разным таблицам. Я боролся с дизайном, и у меня нет выхода, я должен отправить все формы через ajax на сервер для обработки. Есть много взаимосвязей. Я тоже не могу объединить формы в одну большую. Таким образом, вопрос в том, как лучше всего отправлять много форм через ajax. Для дальнейшего усложнения проблемы существуют динамические формы с полями с одинаковыми именами.

Я пробую технику:
1. сериализовать каждую форму, 2. добавляя имя формы к каждому имени поля 3. объединение сериализованной версии форм в одну 4. размещение этой объединенной сериализованной формы на сервере как единой 5. разбить их на стороне сервера на отдельные массивы и, наконец, выполнить логику приложения

Я просто не знаю, есть ли проверенное и более простое решение, и я делаю гору из холма-крота

Ответы [ 3 ]

2 голосов
/ 15 сентября 2009

Если на самом деле нет способа изменить дизайн страницы, то ваше решение кажется мне простым и понятным, совсем не «горным». Для меня, однако, ваше описание страницы кричит «редизайн», хотя, конечно, у меня недостаточно информации для работы.

Одним из таких изменений будет отправка изменений полей на сервер по мере их возникновения, а не ожидание и отправка всей информации. Серверная сторона может удерживать их как «ожидающие», если вам нужно, чтобы пользователь явно зафиксировал все это, когда они закончат. Но это зависит от затрат ресурсов сервера и т. Д.

2 голосов
/ 15 сентября 2009

Вы должны иметь возможность отправлять 9 отдельных запросов AJAX без хлопот (при условии, что a: каждый не полагается на ответ другого, и b: это не то, что происходит постоянно).

Использование библиотеки javascript (вы используете одну, верно ??) просто переберите свои формы, и AJAX отправит каждую. Я думаю, что он будет обрабатывать, вероятно, только 2 одновременно, но если это не проблема для вашего дизайна, тогда все должно быть мило.

Это, безусловно, значительно облегчит PHP / серверную часть уравнения.

Если вы работали с сайтом с большим трафиком, вы, вероятно, захотите уменьшить количество запросов, но есть вероятность, что ваша текущая настройка будет работать достаточно хорошо.

1 голос
/ 15 сентября 2009

Я бы подготовил диспетчер javascript, который с умом выполнил бы работу по публикации данных. Таким образом, при нажатии кнопки отправки он собирает все необходимые данные, а затем отправляет данные в соответствующие контроллеры на стороне сервера. Тем временем он может заблокировать форму или отобразить всплывающее окно «Обработка ...».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...