2013-03-21 57 views
1

我有一个jQuery UI对话框,其中包含一个输入类型,我在其中放置了一个邮编,以便用户可以使用邮政编码进行搜索。如何为html选择下拉菜单设置'php setcookie'

现在我想做一个半径从5到25公里的下拉菜单。

我该怎么做?因为我是新来的setcookie选项。

我的下拉代码

<select> 
    <option disabled selected>Afstand</option> 
    <option>5km</option> 
    <option>10km</option> 
    <option>15km</option> 
    <option>25km</option> 
</select> 

这是我的Cookie代码+对话框的div:

<div id="dialog" class="hidden" title="Welkom bij OostWestRegioBest.nl"> 

    Zoeken in uw regio. 

    <br/><br/> 

    <form method="post" action""> 
     <input type="text" name="postcode" placeholder="postcode"> 
     <br/><br/> 
      // 
      **// Here will be my select dropdown** 
      // 
     <input type="submit" value="Opslaan"> 
     <input type="hidden" name="submitted" value="true"> 
     <input type="hidden" name="afstand" value="true" /> 
    </form> 

<?php 

    if(isset($_POST['postcode'])) 
    { 
     setcookie('postcode', $_POST['postcode'], time() + (20 * 365 * 24 * 60 * 60)); 
     header("location: {$_SERVER['PHP_SELF']}"); 
    }; 

?> 

,在这里我的代码,以示对邮政编码饼干:

<input type="text" name="postcode" value='<?php echo isset($_COOKIE['postcode']) ? $_COOKIE['postcode'] : '' ?>'> 

提前致谢。

+0

如果你使用的是codeigniter(就像你的标签所示),为什么你要编程你的表格呢? – 2013-03-21 13:03:53

+0

我使用的是PHP cookie,我认为用普通的html表单实现这些东西更容易。没关系。它的工作原理和它很容易阅读。 – 2013-03-21 13:07:25

+1

请记住,要设置cookie,在将任何内容输出到浏览器之前,需要在标题中进行。 – 2013-03-21 13:07:43

回答

3

您可以尝试使用Javascript设置cookie而不是使用PHP,因此您无需重新加载任何页面。

编辑:

,如果你在同一表单提交两个值(邮政编码和半径),你只需添加

setcookie('radius', $_POST['radius'], time() + (20 * 365 * 24 * 60 * 60)); 

你的第一个setcookie()之后。你的下拉应该命名为半径,因此:<select name="radius">

+2

错误的,依靠JS只是关于有史以来最糟糕的想法:旧版IE浏览器,JS禁用浏览器......?他们呢? – 2013-03-21 13:10:21

+0

我需要在关闭jquery对话框后直接显示cookie。所以php是最简单的解决方案 – 2013-03-21 13:10:40

+0

@EliasVanOotegem他使用的是jQueryUI,因此旧版本的IE或禁用的JS应该不会有问题,它们不会在第一时间起作用。 – Uby 2013-03-21 13:15:32