Генерация одного и того же HTML с PHP и JS - PullRequest
1 голос
/ 08 сентября 2010

Часто я добавляю вспомогательные функции в мой PHP, которые возвращают сложный HTML.Например, непросто убедиться, что элемент формы доступен, может обрабатывать ошибки и т. Д., И поэтому у меня будет PHP-функция для решения этой проблемы.

К сожалению, иногда мне нужно сгенерироватьтот же HTML, но с использованием JS.Примером этого является то, где у меня есть Flash Uploader, который загружает несколько файлов.Поскольку каждый файл загружен, я хочу заполнить другую форму на той же странице, которая позволит пользователю редактировать данные файлов.

У меня уже есть спецификация для входов для этой формы в вспомогательных функциях PHP.Сейчас я просто воссоздаю эти входы вручную с помощью JS.Тем не менее, это неэффективно и неприятно, потому что если я хочу изменить некоторые аспекты этих входных данных, мне теперь нужно изменить их в двух местах.тот же AJAX-запрос, который загружает файл.Это работает нормально, но может быть проблематично, если у меня большое количество HTML.

Есть ли лучший способ, чем этот, или лучше всего использовать запрос AJAX?

Ответы [ 3 ]

3 голосов
/ 08 сентября 2010

Одна вещь, которую я мог сделать, это передать элементы формы обратно в JS в том же AJAX-запросе, который загружает файл. Это работает нормально, но может быть проблематично, если у меня большое количество HTML.

Конечно, это позволит вам избежать дублирования кода.

Но если вы просто запрашиваете идентичный HTML дважды , это означает - независимо от размера - есть дополнительный HTTP-запрос для тех же данных.

Это, вероятно, не имеет большого значения, но если вас это беспокоит, используйте AJAX для запроса данных один раз , сохраните результат, а затем просто использовали «кэшированный» HTML в следующий раз вам нужно добавить элемент.

Конечно, это работает, только если HTML идентичен .

Теперь, если он идентичен, и если первоначальный запрос помещает одну копию на страницу, почему бы не пропустить AJAX-запрос и просто иметь javascript 'cache' копию формы при загрузке документа ? Затем вы можете дублировать исходную форму каждый раз, когда это необходимо.

0 голосов
/ 08 сентября 2010

На полпути к вашему ответу я собирался предложить ввод данных как JSON через веб-сервис. Другими словами, я собирался предложить AJAX (или AJAJ, я думаю).

Я не понимаю, как бы вы координировали содержимое в противном случае.

0 голосов
/ 08 сентября 2010

Создайте страницу / контроллер в вашем php, которая будет содержать ссылку на сохраненные вами спецификации, вызовет функцию и вернет ее вывод.

Затем при необходимости вы совершаете ajax-вызов, который запрашивает страницу с необходимыми параметрами для получения желаемого контента.

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