0

JavaScript で非常にシンプルなコメント セクションを作成しようとしています。

これはフォームです:

<form>
    <textarea cols="50" rows="10" placeholder="Leave your thoughts ..." id="theComment"></textarea><br/>
    <input type="text" id="commenterName" placeholder="What's your name?"/>
    <input type="button" value="Post Comment" name="postCommentButton" onclick="postComment();"/>
</form>

以下はJavaScriptです:

<script type="text/javascript">
    function postComment()
    {   
        var node = document.createElement("p");
        var textComment = document.createTextNode(document.getElementById("theComment").value);
        node.appendChild(textComment);
        var element = document.getElementById("commentDisplaySection");
        element.appendChild(node);
    }
</script>

しかし、ページがリロードされるとすぐにコメントが消えます。JavaScript を使用して HTML ドキュメントを永続的に変更するにはどうすればよいですか? これには PHP と MySQL を使用する必要がありますか?

4

3 に答える 3

1

JavaScript がサーバーに対して AJAX 呼び出しを行い、サーバー側のスクリプトが要求された変更を適用する場合、JavaScript を使用して Web ページに永続的な変更を加えることができます。

于 2013-08-13T17:09:53.480 に答える
1

コメントとそのデータを表すビットのストリームまたはシーケンスとそのデータは、どこかに記憶 (保存) する必要があります。これにより、それらを呼び出して表示したり、他のユーザーがコメントを表示したりできるようになります。

DOM への変更は、DOM 自体が存続している間のみ存続します。DOM が死んだ場合、変更は死にます。また、DOMは常に死んでいます (ページの読み込み/再読み込み)。

では、DOM に保存できない場合は、どこに保存すればよいのでしょうか? Cookie や localStorage を使用できますか? たぶんあなたはできる。いいえ、実際にはできません。

Cookieはブラウザに保存されます。そして、ブラウザがそれらを有効にしている限り。また、あなたの Cookie を直接見ることはできません。そのため、Cookie は無効になっています。同じことが localStorage にも当てはまります - それはあなたにとってローカルです。

他に何ができますか?サーバーにクッキーを保存するのはどうですか?待って、これかもしれません。はい!これです!

考えてみてください。インターネット上の Web サイトの 100% がこれを行っています。誰でもアクセスできるように、いつでも利用できるサーバーにデータを保存します。ビンゴ!

つまり、要するに、はい、php/mysql を使用します。

于 2013-08-13T17:21:03.673 に答える
0

さて、MySQL テーブルを作成できます。

    CREATE TABLE `values` (
    `id` int(10) NOT NULL auto_increment,
    `username` varchar(50) NOT NULL default '',
    `value` varchar(2000) NOT NULL default '',
    PRIMARY KEY (`id`)
    )

次に、テーブルに接続する php スクリプトを作成します。mysql_real_escape_string を覚えておいてください。
次に、出力したい場所に接続し、同じデータベースとテーブルに接続し、ユーザー名で値を取得する必要があります。htmlspecialchars を忘れずに使用してください。それだけです。ajax を使いたい場合は、ここで実行できます。

于 2013-08-13T17:20:01.333 に答える