2008-10-04 4 views
8

Я писал PHP-приложения в течение некоторого времени и сталкивался с очень приятными фреймворками Javascript, такими как JQuery, ExtJS, Scriptaculous и т. Д. Я не могу сказать то же самое о стороне PHP - Я всегда кодировал эту часть диалога клиент-сервер с нуля.Интеграция AJAX и PHP

Я использовал CodeIgniter (http://codeigniter.com/), и это хорошо, но не имеет отношения к AJAX в целом - скорее, обеспечивает проверку ввода, манипулирование изображениями и некоторые выходные помощники.

Существует ли стандартная библиотека PHP/класс/структура, которая занимается интеграцией с Javascript? Что-то, что может улавливать ответы и запросы пользователей, проверять идентификацию и ввод данных, обеспечивать статус выполнения, отслеживать сеансы, знать асинхронные события и т. Д.

ответ

9

Zend Framework интегрирован с Dojo Toolkit. Я еще не использовал последнюю Zend Framework, но я знаю, что в прошлом она оказалась надежной.

4

Может быть один, но я не могу себе представить, почему. Запрос AJAX выглядит и действует так же, как HTTP-запрос с точки зрения сервера. Вы можете установить и установить файлы cookie. Все переменные среды, которые вы ожидаете от HTTP-запроса, есть. Все HTTP-глаголы работают так же, как и любое из полей заголовка.

+0

За исключением, что вы редко хотите вернуть полный ответ HTML. – noah 2008-10-04 22:56:37

+0

Кроме того, запросы AJAX отправляются для каждой цели под солнцем, тогда как HTTP-получение/сообщение - это просто получение HTML-страницы по большому счету. (Не то, что они не могут использоваться иначе.) – 2008-10-05 01:41:35

1

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

3

В следующем крупном выпуске 1.5 CakePHP будет поставляться с jQuery.

2

Sajax является одним из нескольких библиотек, которые обеспечивают простой способ связывания обратных вызовов с клиентской стороны (JS) на стороне сервера (PHP). Другая библиотека, которая делает что-то подобное, - JPSpan, но я не уверен, что она по-прежнему активно поддерживается. Я провел небольшие эксперименты с этими двумя библиотеками, поэтому ваш пробег может отличаться.

2

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

0

Да, PHP может выводить XML и JSON для Ajax, но не все фреймворки PHP поддерживают JSON/XML одинаково хорошо.

Например: я столкнулся с проблемой в Drupal (4.7), где сеансы PHP будут удалены после вывода ответа JSON. (Код вывода HTML явно закрывал сеанс, который требовался, или сеанс был бы удален.)

Я также хотел бы узнать о фреймворках PHP, которые упрощают управление кодом JavaScript. Даже что-то основное, например, включение jQuery только на требуемые страницы. Или помогает управлять минимизацией/упаковкой javascript-кода.

0

Прощение за отправку по старому вопросу, но относительно новая структура Agile Toolkit - идеальный ответ OP.

Это позволяет создавать полностью объектно-ориентированный веб-графический интерфейс без перехода на HTML/JavaScript.

0

Я бы очень рекомендовал использовать Cjax Framework 100% PHP Side Ajax Framework.

Вы никогда не увидите линию JavaScript.

Cjax позволяет вам делать вещи ajaxy, большую часть времени с помощью одной строки кода.
Также Cjax интегрируется в CodeIgniter, как ваш палец интегрируется в кольцо!

Это нить на форумах CodeIgniter: http://forum.codeigniter.com/thread-65967.html

Cjax не исключительно для CodeIgniter, как и любой веб-сайт или приложение может использовать его, но он имеет встроенную поддержку для него.

Существует также много документации: (С CodeIgniter вики): https://github.com/bcit-ci/CodeIgniter/wiki/ajax-framework-for-codeigniter