ajax を使用して CKEditor コンテンツを収集し、サーバーに送信しています。送信後に確認すると、すべての html タグ < および > が html エンティティに変換されています。明らかに HTML を保持する必要があるため、これは私が望むものではありません。
私が間違ったことはありますか?
いくつかの質問:
フォームの送信に jQuery + validate (フォーム検証プラグイン) を使用しています。
CKEditor がバインドされるテキストエリアはbodyという名前です。
フォームを送信したとき、何らかの奇妙な理由で、コンテンツがまったく送信されませんでした。HTML を調べると、テキストエリアが CKEditor によって取り込まれていないことがわかりました (理由は聞かないでください)。
私がしたことは、提出の直前に、CKEditor から手動でデータを取得し、テキストエリアに隠しておくことでした。jquery は 1 行で十分です。
$( '#body' ).val( CKEDITOR.instances.body.getData() );
その後、通常どおりフォームの送信を続行します。jQuery には、フォーム全体のデータを文字列に変換するために使用するserialize()という関数という、非常に優れたデータ シリアル化メソッドがあります。PHP の最後で、この文字列は$_POST配列のメンバーに自動変換されます。
同じアプローチを試して、それがうまくいくかどうかを確認してください。
それでも問題が解決しない場合は、ここにコードを投稿してください。
乾杯、m^e
最終的に、ajaxがこの方法でデータを送信しているにもかかわらず、サーバーがUTF-8でデータを保存していないことに気付きました。それで、私はそれを修正し、データは正しく保存されました。
正しいのは、構成でこのエンティティを設定することです: false