Разработка web приложений. Как сделать редактор списка в стиле Web 2.0 (настройка и оформление)

11 января, 2008

Скриншот WebListEditor
Это завершающая статья цикла о создании web редактора. Наш редактор позволяет создавать/изменять/удалять записи в обычном списке.

В предыдущих статьях мы рассмотрели:
структуру приложения;
создание главной страницы;
добавление новых записей;
редактирование записей;
и удаление записей.

Примечание. Вы можете посмотреть демонстрационную версию редактора или скачать архив с файлами проекта.

Теперь несколько слов об установке этого приложения.

Прежде всего, вам нужно скачать архив с исходным кодом.

Естественно, у вас уже должен быть установлен web сервер (Apache), интерпретатор PHP и база данных MySQL. (Если у вас возникли сложности на этом этапе смотрите статью «Установка и настройка WAMP5»).

После этого создайте базу данных с одной таблицей.

Примечание. В архиве находится файл db.sql с sql запросом для создания нужной таблицы.

Теперь переименуйте файл dbdata_tmpl.php в dbdata.php (находится в папке scripts) и укажите в нем параметры подключения к базе данных.

Оформление списка

Изменить размещение элементов списка можно с помощью таблицы стилей, которая находится в файле styles.css.

Здесь нет ничего сложного. Единственное, на что стоит обратить внимание, это стили классов itemNum и itemValue.

  1. .itemNum {
  2.     float: left;
  3.     width: 50px;
  4. }
  5.  
  6. .itemValue {
  7.     float: left;
  8.     margin: 0px 0px 0px 0px;
  9. }

Для них задано правило float: left, что позволяет разместить их в одну строку.

Такое же правило задано и для элемента listForm

  1. #listForm {
  2.     float: left;
  3. }

Помните, этот элемент содержит форму встраиваемого редактора и при активации заменяет itemValue.

Для того чтобы каждая запись списка начиналась с новой строки, используется правило clear: both для тегов li

  1. #list li {
  2.     clear: both;
  3.     margin: 0;
  4.     border-top: solid 1px #fff;
  5.     border-bottom: solid 1px #d5dded;
  6. }

Заключение

Вот и все. Наше web приложение закончено. Посмотреть демонстрационную версию вы можете здесь. Обо всех замеченных недостатках пишите в комментариях.

Удачи!

Понравилась статья? Подписывайтесь на продолжение rss link !

Или на мой твиттер twitter link

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в Ajax, JavaScript, PHP Комментарии (19) »

]]>

Комментарии (19)

Вы можете отслеживать обсуждение записи с помощью RSS 2.0 rss link

Вы также можете оставить комментарий, или трекбек с Вашего сайта.

]]>
  1. nube

    При вставке пустого поля ошыбко

    {"error_mes":"\u041d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438"}

    • Спасибо, я разберусь с кодировками.

      Там выводится сообщение: "Не задано значение записи".

    • Исправил. Дело, оказывается было не в кодировках.
      Просто я отправил сообщение об ошибке в формате JSON, а встроенный редактор его не понимает.
      Проблема была решена с помощью своего обработчика onComplete.

  2. А интересно в принципе в итоге вышло – санкс за цикл статей 8-)

  3. FoxTester

    Скачал, поставил, ничего не менял.
    На добавлении и удалении – не срабатывает изменение списка записей, а правка – работает нормально.

    Можно оригинальные скрипты глянуть? на каком-то этапе что-то не так..

    • Оригинальные скрипты в архиве, который вы скачали, так что глянуть их не проблема :-)

      Если не сложно, попробуйте запустить скрипт из FireFox с установленным плагином FireBug. Он покажет запросы, которые отправляются серверу и ошибки (если будут).

      Дело в том, что у меня на локалке все нормально работает, и в демонстрационном варианте на сервере хостера (http://www.demosites.org.ua/weblisteditor/) тоже ошибок не возникает.

  4. FoxTester

    Все, вопрос решился:) не обратил внимания что тестировал на версии php без json :)
    нашел замену стандартной функции – и все заработало.
    если кто столкнется с проблемой такой – в комментах php.net/json_encode есть:)

    • Бывает ;-)
      А за ссылку – спасибо! Мне как-то нужно было запустить скрипт без поддержки json, так пришлось самому писать. Получилось гораздо примитивнее, да и поддержка была не для всех типов данных.

  5. MadSem

    Обновление записи происходит и изменение отображаются. А удаление и добавление, отображается только после F5. Подскажите почему не обновляется само?

  6. MadSem

    Посмотрел инфо
    support enabled
    json version 1.2.1

    • Тогда все просто :-)
      Ставьте FireFox и к нему плагин Firebug. Он позволяет посмотреть запрос и ответ сервера.

      Открываете редактор.
      В строке ищите изображение жука. Кликаете по нему – открывается окно. Отмечаете все чек-боксы и жмете кнопку "Enable selected panels…."

      Вам нужна первая панель – Console.

      После этого просто работаете с редактором. В консоле будут отображаться ваши запросы и ответы сервера.

      Например, при добавлении текста.

      В запросе (post)
      value test

      В ответе (response) должна быть такая строка
      {"id":389,"value":"test"}

      Вместо слова test будет текст, который вы введете в редакторе.

  7. Skunk

    Добавил после каждого вызова функции connect строки
    mysql_query("SET NAMES utf8");
    mysql_query("SET CHARACTER SET utf8");
    и всё зашуршало бодренько, а то юникод-то юникодом, а мускулю об этом сказать забыли…

    • А какая версия MySQL у вас установлена?
      Просто у меня не было этой ошибки.
      Вообще вы правы, если есть вероятность ошибки, то лучше указывать везде кодировку явно.

  8. Александр

    Все сделал по инструкции. В firefox все пучком а вот в эксплорере данные в таблицу добавляет но на странице ничего не происходит пока ее не обновить. в чем может быть проблема?

    • Судя по вашему описанию, похоже, что не выполняется JS скрипт, который обрабатывает ответ сервера.
      А какой версией IE вы пользуетесь? Я проверял в IE 7.0.6 – все отлично работает.

  9. сергей

    было бы здорово еще добавить что бы можно было менять их местами ….

]]>

Оставить комментарий

* - обязательные для заполнения поля

]]>