У меня есть форма с <textarea>, которую я хотел бы заменить на <div contenteditable="true". Есть ли простой способ вставить этот контент в мою базу данных MySQL с помощью PHP?

5
chromedude 31 Мар 2011 в 04:05

1 ответ

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

Здесь я делаю простые предположения: ваше текстовое поле содержит элементы html и не портит вашу базу данных (используя любой метод, который вам больше нравится)

Сообщество создало вики, потому что это то, о чем у других людей могут быть лучшие идеи.

  1. Сначала преобразуйте текстовые области в div, не добавляйте дополнительное пространство между div и содержимым (должно быть так: <div id="content" contenteditable="true"><p>First paragraph...

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

  3. Создайте форму, ПОСЛЕ (или раньше, просто не помещайте свой div внутрь формы, на самом деле это, вероятно, не имеет значения, но просто на всякий случай), поместите скрытую текстовую область (display:none; visibility:none) без содержание.

  4. Добавьте скрытое поле ввода, содержащее уникальный идентификатор ссылки вашей базы данных на текущую страницу.

  5. Поместите кнопку отправки СНАРУЖИ формы. Это сделано потому, что вы собираетесь вызвать функцию javascript, чтобы поместить содержимое вашего div в скрытую текстовую область и после этого отправить форму.

  6. Добавьте атрибут onclick к кнопке отправки, чтобы он вызывал функцию для обновления (мой upport, потому что он обновляет мое портфолио)

  7. Сделайте функцию.

    1. Создайте новую переменную, содержащую содержимое блока div (var nt = document.getElementById('contentId').innerHTML;)
    2. Добавить этот контент в скрытую текстовую область (document.forms["formId"].nameOfTextarea.value += nt;)
    3. Отправить форму (document.forms["upport"].submit();)
  8. Теперь сделайте обработчик форм, как обычно.

6
dkuntz2 21 Май 2011 в 03:53