2013-10-03 48 views
1

我有一个用户选择英国或美国,在下拉框中。 然后使用'OnChange'提交。 然后它会发布到自我和后发送数据将存储为cookie。使用Cookie将自己的POST形式发送给自己?

它将使用此cookie来向用户显示正确的数据。 它也会使用这个cookie来显示下拉菜单中的当前选择,以便用户可以将其修改为其他选项。

这是实现此任务的最佳方式吗?它也与移动友好?

编辑 我想使用jQuery方法我认为这看起来很流畅。 我想,我需要根据cookie的值来运行SQL语句使用cookie(所以需要通过头部被发送到服务器)

是以下是否正确? 标题。 添加jQuery & jQuery cookie插件。

<script src="path/to/jquery.cookie.js"></script> 
<script src="path/to/jquery.js"></script> 

身体

<select class="selectordropdown"> 
<option value="1">1</option> 
<option value="2">2</option> 
</select> 

<script> 
$(".selectordropdown") 
    .change(function() { 
    var selectvalue = $(".selectordropdown").val();  
    $.cookie("cookiename", selectvalue {expires : 10, path: "/", domain "domain.com"}); 
    }); 
</script> 

在身体 - 我相信...... 当selectordrop下来的变化。 它将下拉的值存储在cookie中?

这是实现这一目标的正确方法吗?

非常感谢提前!

+0

为什么如果您只将它放入cookie中,您必须发布数据?这很容易用JS完成。 – schlingel

回答

0

使用Javascript更容易结束!

的jsfiddle http://jsfiddle.net/NnvTR/

的HTML

Choose Year 

<select name="yearchoice" onchange="setCookie('mycookiename',this.value,30)"> 

<option value='2010'>2010</option> 
<option value='2011'>2011</option> 
<option value='2012'>2012</option> 
<option value='2013'>2013</option> 

</select> 

脚本

<script>function setCookie(c_name,value,exdays) 
{ 
var exdate=new Date(); 
exdate.setDate(exdate.getDate() + exdays); 
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
document.cookie=c_name + "=" + c_value; 
}</script> 

然后同时测试我使用这个PHP查看饼干。 (in PHP)

<?php 
echo '<br><br><br>'; 
print_r($_COOKIE); 
    ?> 

希望这可以帮助别人 - 感谢指点人!

0

在变化得到的下拉选择的值,并把它添加到一个变量:

变种DD = $( “select.foo选项:选择了”)VAL();

http://api.jquery.com/val/

然后,使用值做你需要做什么或将其存储在cookie中(如其他海报高亮显示),或使用localStorage的任何更新:http://www.w3schools.com/html/html5_webstorage.asp

编辑 只是为了澄清,摆脱形式后 - 这不是需要在这里,有更容易/更好的方式来做你想要实现的。

0

甚至比Cookie更好的是使用本地存储和JavaScript(如果Internet Explorer 7和更早版本不是您的问题)。

一个简单的例子:

var el = document.getElementById("dropdownbox"); 
    if(typeof) Storage) !== "undefined") { 

    el.onchange = function() { 
     sessionStorage.userSelected = el.value; 
    } 
} 

从那里,你可以访问用户从sessionStorage的选择是什么。userSelected

这将存储浏览器会话的信息。如果您需要保持该值比浏览会话更长,则使用localStorage而不是sessionStorage,并且语法完全相同。

此外,如果存储不可用,您可以退回到旧式cookie。但实际上,甚至不需要为此使用PHP,可以使用JavaScript轻松完成。无需发布任何内容。