0

ボタンが 2 つあるテキストエリアがあります。1 つのボタンは入力したテキストをプレビューし、もう 1 つのボタンはテキストをサーバーに送信します。これが私のコードです:

<?php
session_start();
$_SESSION['ShortDescription']='';
if(isset($_POST['Submit']))
{...}
?>

<form name="news" action="add_news.php" method="post">
<textarea  rows="5" name="ShortDescription" id="ShortDescription"></textarea>&nbsp
<input type="button" name="Preview" value="Preview Description">
<input type="submit" name="Submit" value="Submit">
</form>

私はPHPとJavaScriptの初心者です。この問題は AJAX を使用して解決できることを知っています。しかし、私はAJAXに非常に慣れていません。誰でも私を助けてもらえますか?

4

1 に答える 1

0

私が理解していることから、あなたはセッションを開始しており、その後、誰かがテキスト領域に入力した内容に基づいて $_SESSION 変数を作成したいと考えています。ユーザーがプレビューをクリックしたときにページを変更したくない場合 (ただし、将来の状況で $_SESSION 変数を使用できるようにしたい場合)、AJAX などを使用する必要があります (前述のとおり)。このようなことを達成するために私が見つけた最も簡単な方法は、jQuery と AJAX を一緒に使用することです。

基本的に、プレビュー ボタンがクリックされるたびに選択する JavaScript 関数を (jQuery を使用して) 作成します。このようになります。最初に、input タグ内に id を追加します...

<input type="button" id="previewID" name="Preview" value="Preview Description">

次に、javascript ファイルに関数を作成します...

 $('#previewID').click(function() {
   request = $.ajax({
    url: "/form.php",
    type: "post",
    data: serializedData
    });
});

form.php は単純に、$_POST['ShortDescription'] が存在するかどうかを確認するフォームであり、存在する場合はサニタイズして $_SESSION['ShortDescription'] に保存します。「serializedData」は、渡されるテキスト領域のコンテンツです。(実際には変数の内容を URL 経由で渡すだけです。たとえば、ShortDescription = "HelloThere" の場合、シリアル化されたデータは " ShortDescription=HelloThere" になり、URL に次のように追加されます...

" www.website.com/form.php?ShortDescription=HelloThere"

通常、これを手動で設定することはないことに注意してください。これは、概念を示すためのものです。次のようなものを使用します。

    var serializedData = $form.serialize();

AJAX リクエストの例については、この質問をご覧ください。

免責事項:これを達成するためのより良い方法があるかもしれませんが、誰もまだ答えていないので、1つの可能性を提供すると思いました!

于 2013-07-11T14:52:04.873 に答える