Включение формы CodeIgniter в существующую страницу - PullRequest
0 голосов
/ 09 марта 2011

Я хотел бы включить форму комментария CodeIgniter в существующую страницу php. В настоящее время я включаю форму комментария с

$_SERVER["REQUEST_URI"] = "comment/index2/".$page;
                require_once($directoryLevelPrefix . "staff/codeigniter/index.php");

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

redirect($_POST['return'])

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

Альтернативой может быть использование ajax, но я бы хотел, чтобы вся страница обновлялась при отправке комментария.

Ответы [ 2 ]

0 голосов
/ 09 марта 2011

У меня была похожая потребность, и я только что загрузил форму CodeIgniter в iframe. Это было разместить контактную форму на странице WordPress. Я пошел с iframe, потому что мои потребности были ограничены этой формой, и я чувствовал, что не нужно пытаться каким-либо образом интегрировать CodeIgniter и WordPress.

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

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

0 голосов
/ 09 марта 2011

Это потому, что CodeIgniter - это платформа, предназначенная для отображения целых веб-страниц. Вы не можете просто включить его, так как он пытается отправить новые заголовки и все.

Два решения:

  • Вы можете загрузить страницу codeigniter в качестве главной страницы и просто включить свой исходный код php, например, в файл представления. Это зависит от того, как настроен ваш оригинальный php файл.

  • Вы можете использовать cURL для вызова страницы с вашего собственного сервера, чтобы получить вывод html в виде строки, а затем отобразить ее на текущей странице. Это не очень эффективно, хотя.

  • Как упоминал С. Скотт Асбах, вы можете загрузить всю страницу в iframe. Вероятно, это не очень хорошая идея, насколько я знаю, если фреймы устарели и создают беспорядочные сайты.

Вероятно, лучше всего просто попытаться избежать использования CodeIgniter для отображения подчиненной формы на существующей странице: -)

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