Редактируемая форма и сохранение изменений - PullRequest
0 голосов
/ 16 июня 2011

Я надеюсь, что это не сложнее, чем кажется.

Я хочу создать форму HTML с несколькими текстовыми полями, которые позволят пользователям вводить некоторые данные, и я хочу, чтобы эти изменения были сохранены в форме.

Например, если мойНа html-странице написано:

Имя: []

... Я хочу, чтобы кто-то мог нажать на [], ввести свое имя и т. д. инажмите СОХРАНИТЬ, а затем укажите форму:

Имя: «Имя человека»

Если кто-то захочет обновить его, он может нажать на имя человека и изменить его.нажмите «Сохранить» и обновите HTML-форму.

Как я могу это сделать?Я смотрел везде, и люди говорят о HTML5 и PHP.Неужели так сложно создать простую страницу, подобную этой?

(Если мне неясно в моем html, я использую опцию contenteditable="true". Как я могу сохранить эти изменения?)

Ответы [ 3 ]

2 голосов
/ 16 июня 2011

Я думаю, что ваш вопрос указывает на то, что вы еще не знаете, что веб-страницы (включая формы) являются "не имеющими состояния", что означает, что они не "автоматически" хранят или хранят то, что вы делаете с ними.Извините, что разочаровал, но, как новичок, вы будете изо всех сил пытаться найти «простое» решение для этого.

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

Вот (действительно) краткое резюме:

Когда ваша форма используется вашим пользователем, пара вещей уже произошла, прежде чем они увидят форму:

  1. пользователь запросил страницу (набрав URLили нажав ссылку)

  2. веб-сервер отправил запрошенную страницу (т. е. ваш сайт отправил форму)

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

Поэтому, чтобы избежать этого, вы можете использовать ряд инструментов:

Javascript : работает на компьютере пользователя.Вы можете использовать это, чтобы узнать, было ли что-то внесено в форму, и сохранить это, например, в cookie.

Тогда вам придется встроить некоторую логику в свою страницу, которая говорит: «Если мойПользователь обновляет страницу или возвращается на этот сайт позднее, затем ищет файл cookie. Если он существует, примите его значения и предварительно заполните форму, прежде чем пользователь увидит ее. "

Серверный скрипт : Эта логика может быть встроена в ваш веб-сервер (с использованием серверного скрипта, такого как PHP), поэтому она фактически выполняется на шаге 2.

В качестве альтернативы вы можете встроить его вФункция javascript, которая срабатывает, когда страница фактически получена вашим пользователем.Это будет шаг 3.

Вторая альтернатива объединяет эти две идеи (обработка на стороне пользователя и обработка на стороне веб-сервера), называемая AJAX, что в основном означает, что «обсуждение» между вашим javascript и PHP требуетразмещайте «на лету», когда данные вводятся или изменяются.

И, наконец, вы можете рассмотреть PHP-сеансы для хранения данных и / или базы данных MySQL.Недавно, с появлением современных браузеров, у вас появилась возможность хранить информацию в локальной базе данных, доступной для браузера вашего пользователя ...

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

Это не так просто, как вы думаете ...

0 голосов
/ 16 июня 2011

Это не сложно (по крайней мере, я так не думаю), но, похоже, на поколение впереди того, что вы уже знаете. И может потребоваться довольно много времени, чтобы создать структуру, прежде чем вы сможете делать подобные вещи без помощи.

Есть несколько основных вопросов

  • Нужно ли сохранять информацию, когда пользователь нажимает кнопку перезагрузки?
  • Нужно ли сохранять информацию, когда пользователь очищает куки?

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

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

В противном случае вам понадобится язык разрыва. Обычно это в PHP, но вы решаете, какой язык связан с тем, почему вы хотите изучать в первую очередь? Вы хотите работать в компании позже? У вас есть свой сайт?

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

Обычно, в большинстве случаев, есть имя для входа и пароль (или OpenID), и если куки очищаются, пользователь снова входит в систему, но это требует некоторой работы для настройки рабочего входа перед повторным посещением этого сайта. Вопрос о том, как хранить то, что они печатают.

0 голосов
/ 16 июня 2011

Вам не нужен HTML5. HTML4 достаточно хорош:)

Но вам нужен некоторый серверный скрипт, который сохраняет изменения (на стороне сервера, например, в файле БД или XML). Чтобы сделать его более удобным (если несколько пользователей используют форму одновременно), я предлагаю вам использовать AJAX для сохранения изменений и опроса сервера на наличие обновлений.

...