페이지 매김이있는 하나의 양식 페이지가 있습니다. 사용자가 페이지 매김을 사용하여 이전 또는 다음 페이지로 이동할 때 양식 값을 유지하려고합니다. 세션 범위를 사용하여이 작업을 수행 할 수 있음을 알고 있습니다. 그러나 여기서는 세션 범위를 사용하고 싶지 않습니다. 누구든지 세션을 사용하지 않고 이것을 수행하는 방법에 대한 아이디어가 있습니까? 저에게 알려주세요.세션을 사용하지 않고 양식 값을 유지하려면 어떻게해야합니까?
여기 내 양식 페이지입니다 :
<cfoutput>
<form action="#buildUrl(action='survey.save_surveyresults',querystring='surveyId=#rc.surveyid#')#" method="post">
<input type="hidden" name="id" value="0">
<input type="hidden" name="surveyid" value="#rc.surveyId#">
<div class="container-fluid">
<div class="row">
<div class="control-group">
<label class="label-control" for="name">Name</label>
<div class="controls">
<input type="text" name="name" id="name" required="true" placeholder="enter your name" value="#rc.name#">
</div>
</div>
<div class="control-group">
<label class="label-control" for="email">Email</label>
<div class="controls">
<input type="text" name="email" id="email" required="true" placeholder="enter your Email" value="#rc.email#">
</div>
</div>
<cfloop query="rc.questions" startrow="#startrow#" maxrows="#perpage#">
<!--- because we have all questions and answers in query we can use switch instead calling template or view
for each question, so its simplify directory structures, questions directory is not necessary now --->
<h3>#CurrentRow#<cfif rc.questions.isrequired><strong>*</strong></cfif>. #rc.questions.question#<h3>
<cfswitch expression="#rc.questions.template#">
<fieldset>
<cfcase value="textbox">
<input type="text" class="input-xlarge" name="#template#_#questionid#" id="question_#questionid#">
</cfcase>
<cfcase value="multiplechoice">
<cfloop list="#answer#" delimiters="," index="i">
<div class="controls">
<label>
<input type="radio" name="#template#_#questionid#" id="question_#questionid#" value="#answerID#" >
<span class="lbl">#i#</span>
</label>
</div>
</cfloop>
</cfcase>
<cfcase value="multiplechoiceother">
<cfloop list="#answer#" delimiters="," index="i">
<div class="controls">
<label>
<input type="radio" name="#template#_#questionid#" id="question_#questionid#" value="#answerID#" >
<span class="lbl">#i#</span>
</label>
</div>
</cfloop>
<div class="control-group">
<label class="label-control" for="other">Other</label>
<div class="controls">
<input type="text" class="input-xlarge" name="#template#_#questionid#" id="question_#questionid#">
</div>
</div>
</cfcase>
</fieldset>
</cfswitch>
</cfloop>
<p></p><br />
<cfif startrow GT 1>
<a href="#buildUrl(action='survey.survey_question',querystring='surveyid=#rc.surveyid#&startrow=#startrow-perpage#')#" class="btn">Previous</a>
</cfif>
<cfif (startrow + perpage - 1) lt rc.questions.recordcount>
<a href="#buildUrl(action='survey.survey_question',querystring='surveyid=#rc.surveyid#&startrow=#startrow + perpage#')#" class="btn">Next</a>
<cfelse>
<button type="submit" name="submit" class="btn btn-success">Finish</button>
</cfif>
</div>
</div>
</div>
</form>
</cfoutput>
양식을 처음 제출할 때 모든 변수를 숨김 필드와 제출 단추가있는 새 양식에 저장합니다. –
왜이 세션에서 세션 범위를 사용하는 것을 주저합니까? –
현대적인 브라우저를 사용하면 예기치 않게 세션 변수가 변경 될 수 있습니다. 우리는이 작업을 통해 불에 타 버렸고 이제는 이전보다 훨씬 적은 정보를 세션 범위에 저장합니다. –