创建Cookie OnSubmit表单

时间:2014-01-15 15:47:43

标签: javascript php jquery forms cookies

我需要知道如何在表单提交时创建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。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果表单位于iframe中,我不确定您是否可以这样做。你可以随时提交表单提交新的cookie(使用php代码中的“Set-Cookie”标题)。

如果表单在同一页面中,

<form id='simpleform'>
....
</form>

然后你用jquery来捕获

$('#simpleform').submit(function(e) {
    createCookie('mypopup', 'no', 365);
});

但看起来你想要的是你的php表单代码来评估表单,并且只有在用户提交了有效表单时才设置cookie。 [/ 2美分]