Как динамически создать элемент DOM с помощью MVC Codeigniter - PullRequest
0 голосов
/ 01 октября 2011

Я понимаю, что код, который вы используете для генерации страницы, будет помещен в раздел представления шаблона MVC CI.

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

Например, как и в Facebook, когда вы оставляете сообщение о чьем-либо статусе, ваше сообщение будет «добавлено» в цепочку ответов на статус.

Таким образом, в view.php я написал бы так, чтобы при попытке ответить на Ajax-вызов был сделан на controller.php и направлен в model.php (который «добавил» новое сообщение в статус в БД), после чего куда мне идти?

1 Ответ

1 голос
/ 02 октября 2011

На стороне клиента, когда, скажем, нажата кнопка «Добавить», сообщение отправляется обратно на сервер через Ajax. Сервер обрабатывает сообщение и возвращает результат обратно клиенту. Теперь у вас есть два варианта:

  • Сервер отвечает только с успехом или неудачей. В случае сбоя ваш JavaScript отображает сообщение об ошибке, в случае успеха вы добавляете сообщение в список (используя значения, отправленные на сервер)
  • Сервер отвечает всеми данными, которые должны быть добавлены (скажем, сообщение, автор, дата, ...). Сервер может возвращать такие данные, как JSON, и, поскольку JSON = нотация объектов JavaScript, JavaScript может легко их проанализировать. Используя эти данные, вы создаете новый узел и добавляете его.

Ответ JSON может выглядеть примерно так:

{
 message: 'I like the new picture!',
 author : 'William',
 date : '2011-10-9' 
}

и вы разбираете его с помощью JavaScript. Ссылка на этот вопрос для примера разбора: Разобрать JSON в JavaScript?

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

Я использую не CodeIgniter, а Zend, и у него есть приятная логика для изменения типа ответа с HTML на JSON или XML. Этот вопрос может вам немного помочь: codeigniter JSON

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