Context
Я работаю над проектом, который я хотел бы сделать более динамичным с PHP + AJAX.
Я использую jQuery для части AJAX, потому что я полностью поглощаю Javascript, и в любом случае, похоже, что-то стоит.
Я достиг точки, когда моему приложению нужно использовать форму для отправки сообщения, и я хочу использовать вызов ajax для выполнения этого действия. На странице, которую я хотел бы отправить, есть также список последних 15 отправленных сообщений.
Первый вопрос: Стоит ли просто забыть об этом и использовать только PHP?
Акция
Пользователь пишет что-то в <textarea></textarea>
и нажимает на <a id="myPostSubmit">Submit</a>
, который является обработчиком, которым я буду управлять в скрипте jQuery, с чем-то вроде $("#myPostSubmit").live('click', function() { /* here i make the ajax call */ });
. Если сообщение будет успешно отправлено, мы собираемся что-то сделать (я расскажу об этом в следующем разделе), либо мы будем предупреждать пользователя, используя мою функцию showAlert(text)
, которая показывает черный ящик в течение 4 секунд с text
в нем.
Второй вопрос : Должен ли я управлять событием click любым другим способом? Должен ли я создать функцию, такую как sendpost(post)
, и прикрепить ее к событию HTML onclick=""
?
Если сообщение успешно отправлено
Я бы открыл обсуждение двух вариантов:
Мы обновляем страницу [на самом деле не
загрузка всей страницы, но создание
другой вызов AJAX, который извлекает
публикует списки и заставляет исчезнуть
старый, загрузите файл PHP в
получить новые сообщения (в том числе
тот, который мы только что отправили), а затем сделать
список сообщений появляется]. Pro : 1) Мы уверены, что то, что пользователь читает после загрузки списка сообщений, является реальным отправленным сообщением. Так что это на самом деле дважды проверяет действие. 2) Загружаем также несколько возможных постов, отправленных тем временем. Минусы : 1) Мы должны создать файл PHP, который получает шаблон списка сообщений, разрезая шаблон этой страницы на 2 файла. 2) Мне это не кажется гладким.
Мы просто используем Javascript, чтобы получить шаблон поста, добавить его в список. Pro : 1) Мы делаем это действительно плавно, без перезагрузки всей страницы. 2) Нам не нужен PHP-файл для перезагрузки страницы. Мы просто используем Javascript (jQuery). Минусы : 1) Как мы можем получить шаблон post html, чтобы добавить его в список? 2) Как мы можем получить пользовательскую (зарегистрированную) информацию без PHP?
Третий вопрос : Лучше 1-е или 2-е решение? Вы бы предложили еще лучшее 3-е решение?
Страница PHP
Страница PHP, которая получит этот вызов AJAX: ?p=action&a=sendpost
. Страница требует установки $_POST['myMessage']
, а не пустой и ничего больше. Сама страница получит всю информацию о пользователях из файлов cookie и сможет выполнить необходимый запрос.
Заявка
Он разделен на 3 части: Приложение , Шаблон , Библиотека . По сути, каждая страница приложения имеет собственный файл .app.php
и .tpl.php
.
- Файл
.app.php
управляет зданием
основы страницы, используя классы
и другие вещи из библиотеки. В
в нашем случае он извлекает данные из
базы данных и положить их в
переменная.
- Шаблон вызывается в конце файла
.app.php
. Файл .app.php
отправляет в шаблон извлеченные данные, а файл .tpl.php
выводит их.
- Библиотека содержит классы и функции, которые нам нужны в файле приложения.
Четвертый вопрос: Это хороший способ управления моим веб-приложением?
Редактировать: А как насчет возврата пользователю сообщения с предупреждением?
Я читал о параметре внутри $.ajax()
, который будет управлять ответом в случае успеха или ошибки. Документация об этом очень проста, и я не получил это.
Пятый вопрос: Как вернуть (из файла PHP) ошибку
или успех?