2013-03-21 92 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