0

ただ一つ疑問がありました:

サーバー側の検証を行うフォームがあります..検証付きのnpがありますが、問題は次のとおりです。

フォームで、( 10 ではなく) 9 つのフィールドを入力したと仮定すると、「10 番目のフィールドがありません」というエラーが表示され、9 つのフィールドに入力したすべてのデータを再入力する必要があります.. (実際にはちょっとしたミスで同じデータを再入力するのは大変です)

そのため、テキストフィールド、テキストエリア、またはその他の html 要素に以前に入力されたデータが何であれ、サーバーの検証後でも自動的に保存されるべきであると考えてください..ユーザーが再度入力する必要がないように..

どうすればこれを達成できますか.. Googleで試しましたが、この種の状況を検索する方法がわかりませんでした..

私の悪い英語でごめんなさい..あなたが私の問題を解決したことを願っています..

それで、何か提案はありますか..?

4

2 に答える 2

0

それはする必要があります

<div id="ArticlesOrderForm" class="formGroup"> 
<legend>Articles Order Form</legend> 
<b><label for="article_keywords">Keywords/Titles<span class="reqd">*</span> : </label></b> 
<textarea rows="6" cols="50" id="article_keywords" name="article_keywords" ><?php echo $_POST["article_keywords"]; ?></textarea> 
<b><label for="article_keywordDensity">Keyword Density (Optional): </label></b> 
<textarea rows="6" cols="50" id="article_keywordDensity" name="article_keywordDensity" ></textarea>

しかし、JavaScript検証を使用してみませんか?

このjQueryプラグインは非常に素晴らしく、使いやすいです。

http://docs.jquery.com/Plugins/Validation

検証タイプを追加するには、requiredやemailなどのクラスを追加するだけです。

于 2012-10-24T11:50:07.780 に答える
0

@ジム、これは元の質問と同じ状況です。
(誰かが別のアカウントだと指摘する前に、それは実在の同一人物です - 長い話です!)

ポストバック後にコントロールをブラウザに送り返すと、PHP はコントロールの「状態」を保持しません。

そのため、毎回次のメッセージを送り返す代わりに...

<input type="text" id="mytext" name="mytext">

コントロールの一部として最初に入力されたものを送り返す必要があります...

<input type="text" id="mytext" name="mytext"
   value="<?php echo $_POST['mytext']; ?>>

チェックボックスとラジオ(最初の質問でした)では、次のようなものが必要です...

<input type="checkbox" id="mycheck" name="mycheck"
   value="<?php echo (isset($_POST['mycheck']) ? "checked" : ""); ?>>

<textarea>そして、あなたがコントロールについて話しているとき、あなたは次のようなことをするでしょう...

<textarea id="mytext" name="mytext"><?php echo $_POST['mytext']; ?></textarea>

アップデート

HTML を$echostring 変数に組み込む場合 (HTML を直接マークアップするのではなく)、上記のコードを string の一部として含める必要があります。

文字列の構築echoにコマンドを実行すると、編集中のものがすぐに画面に送信されます。次に、コマンドを介しての内容を送信すると、他のすべてが取得されます。echo$echoecho $echo;

したがって、1行のテキストボックスの場合は...

$echo = '<input type="text" id="mytext" name="mytext" value="'. $_POST['mytext'] .'">';

チェックボックスの場合は...

$echo = '<input type="checkbox" id="mycheck" name="mycheck" '. (isset($_POST['mycheck']) ? "checked" : "") .'>';

複数行のテキストボックスの場合は....

$echo = '<textarea id="mytext" name="mytext">'. $_POST['mytext'] . '</textarea>';

作成している文字列の一部として、コントロールの既存の値を含めていることがわかります。

于 2012-10-24T09:24:15.517 に答える