방문자가 특정 주제에 투표 할 수있는 간단한 사이트를 만들었습니다. 그것은 하나의 질문으로 구성되어 있으며 세 가지 선택 :로그인하지 않고 사용자의 양식 입력 기억하기
<template name="addVote">
<div class="form-row choices">
<label><input type="radio" name="vote" value="Yes"><i></i><span>Yes</span></label>
<label><input type="radio" name="vote" value="No"><i></i><span>No</span></label>
<label><input type="radio" name="vote" value="Undecided"><i></i><span>I’m Undecided</span></label>
</div>
<div class="form-row">
<button class="button-submit">Submit and view results</button>
</div>
</template>
내가 로컬 스토리지뿐만 아니라 완벽하게 작동하는 DB에서 양식 값을 저장하기 위해 Session Amplify 패키지를 사용하고 있습니다.
var vote = $('[name="vote"]:checked').val();
Meteor.call("addVote", vote, function(error, voteId) {
SessionAmplify.set('vote', vote);
});
방문자가 투표를 기록한 후에는 투표 결과가 바코드로 표시됩니다. 그들은 투표 한 후에 만 결과를 볼 수 있습니다.
내가해야 할 일은 사용자가 사이트를 다시 방문 할 때 사용자의 투표를 기억하여 투표를 거치지 않고 곧바로 결과에 도달 할 수 있도록하는 것입니다. 모두 계정을 만들거나 로그인하지 않아도됩니다. 이미 저장하고 있습니다. localstorage에서의 응답은 간단히 SessionAmplify.get('vote')
을 실행하여 액세스 할 수 있습니다.
이 저장된 값을 사용하여 양식을 미리 채우고 결과를 표시하려면 어떻게해야합니까?
이렇게하면 페이지가로드 될 때 양식의 값이 설정됩니까? –
왜 양식에 값을 설정하십시오. 그냥 다른 표를 제출하지 않겠습니까? 사용자가 투표를 통해 양식을 건너 뛰고 결과를 표시했습니다. 이전에는 데이터베이스에 ip-address를 저장하여이 작업을 수행했습니다. – Mouser
페이지의 레이아웃과 관련이 있습니다. 왼쪽은 투표 양식이고 오른쪽은 결과입니다. 사용자가 다시 돌아와 이미 투표 한 경우 양식에 답변을 반영하고 결과가 자동으로 나타나기를 원합니다. –