contenteditable
というdivを使用して、ユーザーがその中のテキストを編集できるようにしました。divの内容がデータベースに挿入されていません
フォームが送信されるときに、Javascriptを使用して非表示の入力フィールドの値をdivのコンテンツとして設定し、それをデータベースに挿入します。
私の問題は、divのコンテンツがデータベースに入力されていないことです。
<?php
if(isset($_POST['submit'])) {
echo'
<script>
document.getElementById("hiddenTextarea").value =
document.getElementById("post").innerHTML;
return true;
</script>
';
$post = $_POST['hiddenTextarea'];
$stmt = $con->prepare("INSERT INTO posts (post) VALUES (:post)");
$stmt->bindParam(':post', $post);
$stmt->execute();
}
?>
<form method="post">
<div id="post" contenteditable></div>
<input type="hidden" id="hiddenTextarea" name="hiddenTextarea">
<input type="submit" name="submit">
</form>
は、問題はおそらくクエリはJavascriptコードの前に実行されていることを#hiddenTextarea
の値を変更しましたか?次のコードから
運がいい...まだ同じ問題です。また、要素に 'name'が必要な理由を説明してください。 –
jsコードでは、hiddenTextareaへの投稿のデータを置くだけで、この場合はdivコンテンツの代わりにtextareaタグから編集して使用することができます。投稿に直接アクセスします –
私はそれについて考えました'textarea'ではできないdiv太字や斜体(JQueryを使って)内の選択されたテキストをユーザーが作成できるようにする計画です。 –