2016-04-26 5 views
-2

私のASPページでは、チェックボックスとテーブル(5個のtdsを含む)チェックボックスだけをクリックすると、2番目のTdが表示されます。送信ボタンをクリックしている間に検証エラーが発生すると、そのページは保持されます。しかし、動作しません。Submitボタンをクリックして古典的なaspページを保持する方法(検証エラーが発生している間)

+2

あなたが試したことの少なくとも基本的な例を投稿せずに、どのようにして助けを期待しますか? [セッションを使ってこれを行う](http://stackoverflow.com/a/36859821/692942)は、 'Session'オブジェクト経由で渡すときにWebアプリケーションのパフォーマンスを傷つけることになります。 – Lankymart

答えて

-2

セッションを使用することをお勧めします。入力を得るための1ページ、入力を処理するための1ページ。

表示ビット(index.asp)

<input name="username" type="text" value="<%=session("username")%> 
<% 
    if Session("error")=true then 
    response.write("Username cannot be blank") end if 
%> 

プロセスビット(index_process.asp)

<% 
    'Set error to false first everytime processed. 
    Session("error") = false 
    if Session("username) = "" then 
     Session("error") = true 
    end if 

    if Session("error") = true then 
    ' If error is true , redirect back to index.asp 
    response.redirect("index.asp") 
    else 
    response.redirect("success_page.asp") 
    endif 

%> 

入力は、それの全てがバックリダイレクト場合でも残る、セッションに設定されているので処理ページから取得します。もう必要ないときに、適切なセッションデータをクリアするのを忘れないでください。

+0

セッションをブロッティングする必要はありません。最初に間違えてしまいます。 'Request.Form'の値はページ内でもう一度利用できます*(処理後、データベースに保存するなど)*それに応じてそれらを処理します。 – Lankymart

+0

request.formはほとんどの場合それを処理しますが、フォーム処理とフォームページを同じファイルに組み込むことは非常に面倒です。これにより、ポスト値が無効になります。私はLankyが「セッション・ブロッティング」と考えるものを使用しながら、10000を超える月間訪問者を取得する300ページ以上の古典的なASPプロジェクトを処理しますが、それは決して顕著なパフォーマンスの低下を引き起こしません。 – dirkaka

+1

同じファイルに処理するためにフォームとコードの両方を組み込むのが面倒ではありません。 "投稿値を無効にする"?え? – Martha

関連する問題