Wie würden Sie sparen eine contenteditable div Inhalt in einer Datenbank mit einem PHP-Formular?
Ich habe ein Formular, das eine <textarea>
dass würde ich gerne ersetzen mit einem <div contenteditable="true"
. Gibt es eine einfache Möglichkeit einfügen, dass der Inhalt in meiner MySQL Datenbank mit PHP?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nur implementiert, damit ich weiß nicht, welche bugs es gibt, gerade jetzt, aber es funktioniert. Ich weiß auch, dass es ziemlich gehackt zusammen, und es gibt wahrscheinlich eine elegantere Lösung, um dies zu tun, aber dieses funktioniert.
Ich bin eine einfache Annahmen hier: Ihr textarea mit html-Elementen und nicht mess up Ihrer Datenbank (mit was auch immer Methode, die Sie am besten gefällt)
Community Wiki würde denn es ist etwas, andere Menschen haben vielleicht bessere Ideen.
Zuerst konvertieren Sie Ihre Texteingabefelder zu divs, kein zusätzliches Leerzeichen zwischen dem div und der Inhalt (es sollte wie folgt sein:
<div id="content" contenteditable="true"><p>First paragraph...
Wählen Sie eine id für jedes div, das wird jetzt contenteditable, auf meiner Website, ich habe beschlossen, auf die wirklich einfachen
content
- id, und ich habe nur ein div, dass Bearbeitbare auf jeder Seite, die Bedürfnisse zu Bearbeiten (Sie benötigen eventuell mehr. Die einzelnen div-braucht seine eigene id).Machen, ein Formular, NACH (oder vor, nur nicht setzen Sie Ihre div in der form, eigentlich, wahrscheinlich, dass nicht wichtig ist, aber nur um sicher zu sein), legen Sie eine versteckte textarea (
display:none; visibility:none
) ohne Inhalt.Fügen Sie ein hidden-input-Feld enthält eine eindeutige Kennung für Ihre Datenbank ein Verweis auf die aktuelle Seite.
Ort einen submit-button AUßERHALB der form. Dies geschieht, da wirst du zum aufrufen einer javascript-Funktion, um Ihre div-Inhalt in das versteckte textarea ein und senden das Formular ab.
Hinzufügen eines onclick-Attribut der Schaltfläche "submit", haben es rufen Sie die Funktion aktualisieren (mir ist
upport
weil es updates zu meinem portfolio)Stellen Sie die Funktion.
var nt = document.getElementById('contentId').innerHTML;
)document.forms["formId"].nameOfTextarea.value += nt;
)document.forms["upport"].submit();
)Nun machen Sie den Formular-Prozessor die Art und Weise, die Sie normalerweise würde.