2

テキストエリアを含むモーダルがあります。ユーザーがテキストを入力してモーダルを送信すると、モーダルが閉じ、テキストを HTML の非表示フィールドに保存したいと考えています。

  1. HTML属性に保存するために、テキストエリアからすべてのテキストを安全にエスケープする最良の方法は何ですか? 改行文字は保持する必要があります。

  2. ユーザーがモーダルを再度開いた場合、非表示フィールドに保存されているテキストを取得して、改行文字を付けて元のテキストエリアに戻すにはどうすればよいですか?

  3. ユーザーがフォームを送信するとき、改行文字を含む元の形式でデータベースに使用または保存できるように、非表示フィールドのテキストを再び正規化するにはどうすればよいですか?

テキストエリアのテキストをJvaScriptで保存して、最終的にPHPに渡すための代替ソリューションを受け入れています。

4

2 に答える 2

2

HTML属性に保存するために、テキストエリアからすべてのテキストを安全にエスケープする最良の方法は何ですか? 改行文字は保持する必要があります。

を使用.val()するのが最良のオプションです。テキストエリアのコンテンツが非表示の値属性から抜け出すことはできません。ネイティブ Javascript の使用.valueも機能し、安全.val()です。

ユーザーがモーダルを再度開いた場合、非表示フィールドに保存されているテキストを取得して、改行文字を付けてテキストエリアに戻すにはどうすればよいですか?

モーダルが開いたら:

// #mytextarea = the textarea on the modal
// #myhidden = the hidden on the main page
$('#mytextarea').val($('#myhidden').val()); // set the modal textarea to the value of the hidden

モーダルが閉じるか「保存」するとき:

$('#myhidden').val($('#mytextarea').val());

ユーザーがフォームを送信するとき、改行文字を含む元の形式で使用またはデータベースに保存できるように、非表示フィールドのテキストを再び正規化するにはどうすればよいですか?

新しい行を保持するために何もする必要はありません。Prepared Statement を使用すると、生の post 値がデータベースに保存されます。ページのどこかに値を出力する場合、<br />PHP のnl2br(). 新しい行の変換は、入力値以外に出力する場合にのみ必要です。htmlspecialchars()また、XSS を防ぐために実行することを忘れないでください。

于 2013-06-21T11:54:06.073 に答える
0

これがあなたが探しているものであることを願っています。

ここに JSFiddle チェックアウトがあります: http://jsfiddle.net/ganeshprabhu1994/THPVa/2/

HTML:

    <textarea id="ta" rows="10" columns="20">
 173-B,Perambalur Road,
 Near Water Tank,
    Thuraiyur-621010
</textarea>
<input type="button" id="cut" value="Cut" />
<input type="button" id="paste" value="Paste" />
<input type="hidden" id="hdn1" value="" />

脚本:

$(function(){
$('#cut').click(function(){
    $('#hdn1').val($('#ta').val());
    $('#ta').val("");
});
$('#paste').click(function(){
    $('#ta').val($('#hdn1').val());
});
});
于 2013-06-21T12:02:59.847 に答える