프론트
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="//code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<?php if(!isset($_COOKIE["cookie"])){ ?>
<form class="form">
<label>이름: <input type="text" name="name" class="name"></label>
<label>회사: <input type="text" name="company" class="company"></label>
<a href="#" class="submit">전송</a>
</form>
<?php }else {
/**
* cookie 의 json화 한 배열을 다시 돌림
* 두번째 인수를 true 로 넣어야 배열값으로 리턴됨 <- 왜?
* false 넣으면 오브젝트로 반환됨
*/
$cookie = JSON_decode($_COOKIE['cookie'], true);
// 배열을 불러옴
echo "<p class='result'>이름은 {$cookie['name']}이고 회사는 {$cookie['company']} 입니다.</p>";
}
?>
<script type="text/javascript">
$('.submit').on({click:function(){
$.ajax({
type: 'post',
url: 'ajax_result.php',
async: true,
data: {'name': $('.name').val(), 'company': $('.company').val()},
success: function(result){
alert('쿠키를 생성했습니다. 새로고침 해주세요');
},
error: function(){
alert('통신 오류');
}
})
return false;
}});
</script>
</body>
</html>
백
<?php
$name = $_POST['name'];
$company = $_POST['company'];
$value = array('name' => $name, 'company' => $company);
$valueString = json_encode($value,JSON_FORCE_OBJECT);
setcookie ("cookie", $valueString, time() + (60 * 30), "/");
?>