안녕하세요.
폼을 이용하여 게시판 제목과 몇가지 여분필드를 예약페이지로 넘기고 있습니다.
예약페이지 글쓰기 페이지에 아래와 같이 상단을 넣으니 제가 원하는 항목은 잘 가지고 오고 있습니다.
Copy
$subject = $_POST[wr_subject];
if( empty( $w)){
$ref_id=sql_real_escape_string( $_POST['ref']);
$ttb= $_POST['ref_table']?'g5_write_'.$_POST['ref_table']:'g5_write_booking_tour';
$tmp1= sql_fetch("select wr_subject from {$ttb} where wr_id='$ref_id' ");
$wr_subject= $tmp1['wr_subject'];
$write['wr_8'] = $_POST['wr_6']; //상품가격
$write['wr_10'] = $_POST['wr_4']; //가격표기문구
}
그런데 이 예약페이지를 회원전용으로 만들고 싶어서 권한을 2 이상만 작성하게큼 설정을 했는데
예약하기 버튼을 누루면 --> 회원로그인 페이지 --> 예약작성페이지 로 가게하려고 합니다.
그런데 회원로그인 페이지만 갔다가 다시 예약페이지로 가면 폼으로 옮겨왔던 내용들이 리프레쉬 되면서
모두 사라집니다. 로그인 페이지를 다녀와도 폼으로 옮겨온 내용이 그대로 있게 하려면
어떻게 해야할까요?
도움 주시면 감사하겠습니다.
답변 4개 / 댓글 1개
채택된 답변
+20 포인트
Copy
<?php
$subject = $_POST['wr_subject'] ?? '';
if (empty($_POST['w'])) {
$ref_id = sql_real_escape_string($_POST['ref'] ?? '');
$ttb = !empty($_POST['ref_table']) ? 'g5_write_' . $_POST['ref_table'] : 'g5_write_booking_tour';
$tmp1 = sql_fetch("SELECT wr_subject FROM {$ttb} WHERE wr_id='$ref_id'");
$wr_subject = isset($tmp1['wr_subject']) ? $tmp1['wr_subject'] : '';
$write['wr_8'] = $_POST['wr_6'] ?? '';
$write['wr_10'] = $_POST['wr_4'] ?? '';
if (!$is_member && !$member['mb_id']) { ?>
<script>
window.onload = function () { // 회원이 아니면 로컬에 저장
localStorage.setItem("wr_subject", "<?= addslashes($wr_subject) ?>");
localStorage.setItem("wr_8", "<?= addslashes($write['wr_8']) ?>");
localStorage.setItem("wr_10", "<?= addslashes($write['wr_10']) ?>");
};
</script>
<?php }
} else if(!$_POST['wr_6'] && !$_POST['wr_4']) { // 포스트로 넘어온 값이 없으면 로컬에 있는 것 불러오기 ?>
<script>
window.onload = function () {
if (document.querySelector("input[name='wr_subject']")) {
document.querySelector("input[name='wr_subject']").value = localStorage.getItem("wr_subject");
}
if (document.querySelector("input[name='wr_8']")) {
document.querySelector("input[name='wr_8']").value = localStorage.getItem("wr_8");
}
if (document.querySelector("input[name='wr_10']")) {
document.querySelector("input[name='wr_10']").value = localStorage.getItem("wr_10");
}
/* // 로컬에서 확인
console.log("Loaded from localStorage:",
localStorage.getItem("wr_subject"),
localStorage.getItem("wr_8"),
localStorage.getItem("wr_10")
);
*/
};
</script>
<?php } ?>
로그인 페이지를 수정 하기는 불편할 것이니 로컬에 저장해서 하면 될 것입니다.
테스트 해보지는 않았는데 위와 같이 하면 될 것입니다.
오류가 나면 수정해서 해보세요.
답변을 작성하려면 로그인이 필요합니다.