我需要知道如何在表单提交时创建cookie。
我有一个页面,当你访问它时会从colorbox显示一个模态窗口。模态内部是新闻稿电子邮件注册的表单。如果用户点击表单或取消cookie,则只能过期1天。如果用户在表单上提交电子邮件,则cookie将过期1年。所以基本上我需要表单来覆盖cookie,如果提交。这是我到目前为止的代码。
<link rel="stylesheet" href="../cb/colorbox.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="../cb/jquery.colorbox.js"></script>
<script type="text/javascript">
//<![CDATA[
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function showModal() {
$.colorbox({href:"content.php", open: true,iframe: true,width:"400px", height:"200px"});
}
var visited = readCookie('mypopup');
if (!visited) {
$(document).ready(function(){
showModal();
createCookie('mypopup','no',0);
});
}
//]]>
</script>
因此需要onSubmit cookie代码,以便我可以将其放在我的“content.php”页面上,以便在提交时覆盖现有的cookie。
谢谢!
答案 0 :(得分:0)
如果表单位于iframe中,我不确定您是否可以这样做。你可以随时提交表单提交新的cookie(使用php代码中的“Set-Cookie”标题)。
如果表单在同一页面中,
<form id='simpleform'>
....
</form>
然后你用jquery来捕获
$('#simpleform').submit(function(e) {
createCookie('mypopup', 'no', 365);
});
但看起来你想要的是你的php表单代码来评估表单,并且只有在用户提交了有效表单时才设置cookie。 [/ 2美分]