1

DayZ サーバーの簡単なデータベース タスクを実行するために作成した小さな管理パネルがあります。今、私は自分のウェブサイトのニュース宣伝用のシンプルなエディターを作りたいと思っています. ニュースの宣伝文句はデータベースのテーブルに保存されています。私が欲しいのは、ページがロードされたとき、単にデータをエコーし​​、実際のサイトのように見えることです。次に、それをクリックすると、次のように変換します。

<textarea name="edit><?php echo news; ?></textarea>

これは私の現在のコードです:

function divClicked() {
    var divHtml = $(this).html();
    var editableText = $("<textarea name=&quot;edit&quot; />");
    editableText.val(divHtml);
    $(this).replaceWith(editableText);
    editableText.focus();
    // setup the blur event for this new textarea
    editableText.blur(editableTextBlurred);
}

$(document).ready(function() {
    $("#editable").click(divClicked);
});

<form method="post" action="newsedit.php">
    <div id="editable"><?php echo $news; ?></div>
    <input type="submit" value="Edit News" />
</form>

さて、これは、テキストをクリックするとテキストエリアに変換されるという意味で機能します。問題は、「編集」という名前が付けられていないため、送信ボタンを押すと、何も送信しなかったかのように、テーブルからすべてのデータが削除されるためです。

<textarea name="edit"></textarea>

は技術的に空です。テキストをクリックすると、コードがその特定の名前のテキストエリアに変換され、送信時に実際のデータが存在するようにする方法はありますか?

4

3 に答える 3

0

フォームを次のように変更します。

<form method="post" action="newsedit.php">
    <div id="<?php echo $newsID;?>"><?php echo nl2br($news); ?></div>
    <input type="submit" value="Edit News" />
</form>

$newsID は $news テキストと共に返されます。

nl2br($news) は、改行が尊重されることを確認するだけです。

于 2013-08-19T06:37:08.393 に答える
0

これを試して

$("#editable").click( function(){

    $(this).replaceWith(function() {
  return $("<textarea name='edit'>").text(this.innerHTML);
});

});

これが実際の例です

于 2013-08-19T06:56:04.810 に答える
0
 var editableText = $("<textarea name='edit' />");

http://jsfiddle.net/H5aM4/テキストエリアを調べる

于 2013-08-19T06:42:01.353 に答える