好吧,我已经到了头都要爆炸的地步了,所以我想也许有人知道我的问题是什么。我有一个html表单与选择列表。现在,在表单提交时,我想用选择列表中的选定值设置一个cookie(使用javascript),并在php文件中读取它,并将其值用于另一个变量。当我从下拉菜单中选择一个选项并单击提交时,没有任何变化,就好像传递了相同的值....我不知道我哪里做错了。
HTML + JS:
<form action="CalendarFeeder3.php" name="cf" method="post">
<select name="myvalue" id="SelectTimeZone" name="cfd">
<option value="Africa/Abidjan">Africa/Abidjan</option>
<option value="Africa/Accra">Africa/Accra</option>
<option value="Africa/Addis_Ababa">Africa/Addis_Ababa</option>
<option value="Africa/Algiers">Africa/Algiers</option>
</select>
<input type="submit" onClick="createCookie('cookieee',selectedValue,'500')">
JS:
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=/"+"; domain=.<?php echo $_SERVER['HTTP_HOST']; ?>";
var selectedValue = document.getElementById("SelectTimeZone").value;
}
和PHP:
$kookie = $_COOKIE[_cookieee];
date_default_timezone_set($kookie);
您是否检查过您的浏览器以确保实际上设置了cookie ?
最后,我会删除路径从你的cookie在javascript的域名部分。浏览器将尝试将其浏览的域与该值相匹配,因此/fillerexample部分可能会使其出错?
这是完整的html/js代码吗?
因为我不知道你在哪里给"selectedValue"一个值
也可能是值500作为字符串传递的事实?我不记得javascript是如何处理的,但我确信它不是很好。试试不加引号
所以,总结一下,试试:
onclick=" var sel = document.getElementById('SelectTimeZone'); createCookie('cookieee',sel.options[sel.selectedIndex].value ,500); "
对于PHP端,我会选择$kookie = $_COOKIE['cookieee'];
根据marty的建议,删除cookie的域名部分