2011-11-14 7 views
0

私はslideToggle()を使って隠されたフォームを持っています。私がする必要があるのは、ユーザーがフォームを表示してフォームを表示し、フォームに記入して提出することです。その後、エラーがあれば、divがまだ表示された状態でページを更新することができます。page refreshの後にslideToggle()divを開いたままにしますか?

つまり、slideToggle()がページの更新時にリセットされないようにするにはどうすればよいですか。そうでなければ、ユーザはエラーを見るためにフォームを再び表示しなければならない。私はAJAXではなく単純なPHP_SELFを使用しています.AJAXではなく、単純にシンプルにしたいのです。ここで

が私の現在のJSです:状態を保存するには

$('a#booknow').click(function() { 
$('#formcontain').slideToggle('slow', function() { 
    $(this).toggleClass('houdini'); 
}); 
return false; 
}); 

おかげ

+0

ではなく、単にそれをリフレッシュする、(? '#のshowform'や' ShowFormを= 1 'のような)クエリ文字列またはハッシュでページを要求することを検討してください。こうすることで、上記のクエリ文字列またはハッシュの存在をテストし、それに基づいてフォームを表示/非表示することができます。 – Blazemonger

答えて

2

私はクッキーを使用し、さらに私はpluginを使用します(クライアント側のクッキー管理コードを書くことで頭が痛くなります)。次に、ページのロードの

$('a#booknow').click(function() { 
    $('#formcontain').slideToggle('slow', function() { 
     $(this).toggleClass('houdini'); 
    }); 
    $.cookie('form_visible', $('#formcontain').is(':visible').toString()); 
    return false; 
}); 

$(function() { 
    if($.cookie('form_visible') == 'true') { 
     $('#formcontain').show(); 
    } else { 
     $('#formcontain').hide(); 
    } 
}); 
+0

jQueryクッキープラグインと一緒に扱ってくれてありがとうBryanさん、ありがとうございます:https://github.com/carhartl/jquery-cookie –

1

、あなたはおそらく、例えば、クッキーをクライアント側のストレージを使用する必要があります。 JSの状態をSESSION変数に保存することができます(おそらく、PHPに何か状態を伝える必要があります。おそらく、ajaxを使用します)。

関連する問題