2012-07-18 49 views
1

我正在使用鏈式選擇菜單來引導訪問者通過一些問題。這就像一個魅力,但最終用戶必須單擊一個按鈕才能將所有值發送到PHP腳本。這也可以毫無問題,但是,當頁面重新加載時(因爲按鈕將表單發送到同一頁面),所有字段都會再次隱藏,這不是我想要的。jQuery UI鏈式選擇菜單。單擊按鈕時窗體重置

我想鏈接選擇菜單的顯示,當他們的項目是「選擇」,當頁面重新加載。使用PHP我只需測試一個字段是否被選中,並將該狀態添加到選擇菜單中。但是,直到您再次手動選擇所有內容後,它們纔會隱藏

我認爲這只是JS部分的一個小調整。但是我對JS的有限知識讓我沒有辦法解決問題。

源頭

回答

1

由於表單提交給自己的用戶選擇將在任一$_GET$_POST的值(取決於是否action你的表格是getpost)。

然後最好的方法是使用這些值來設置selected屬性在適當的<option>節點上使用類似這樣的東西。

$selectedC1Value = ''; 
<? if isset($_POST['c1']) { ?> 
    $selectedC1Value = $_POST['c1']; 
<? } ?> 

<select name="c1" id="c1" > 
    <option value="" <? if ($selectedC1Value == '') { echo 'selected'; } ?>> 
     -- 
    </option> 
    <option value="age" <? if ($selectedC1Value == '') { echo 'selected'; } ?>> 
     Age 
    </option> 
    <option value="education" <? if ($selectedC1Value == '') { echo 'selected'; } ?>> 
     Education 
    </option> 
    <!-- etc --> 
</select> 

這會在你的<form>是可重複的每個<select>

+0

是的,我正在使用PHP將「selected」添加到選項節點。但是,當頁面刷新時(由於表單提交)「選擇」選項在那裏,但它們不顯示。 – mat 2012-07-18 19:57:40

+1

在這種情況下,你所需要做的就是重構你的JS來調用你調用的相同方法,當頁面加載的時候改變。我改變了你的小提琴,以顯示第一個「selectmenu」小部件 - http://jsfiddle.net/tj_vantoll/kLDcL/。你必須在頁面加載時進行這種顯式調用,'selectmenu'不會自動運行你的'change'函數。 – 2012-07-18 20:16:15

+0

我已經在多個論壇發佈了這個問題,並嘗試了幾天(作爲JS的新手)。你幫了我很多!謝謝,我接受了答案,並提出了上訴。 我可以再問一個問題嗎?還有一個領域需要展示,我正在努力,因爲我正在撰寫這篇文章,但我現在的想法是模糊的。你能看看請看看:http://jsfiddle.net/kLDcL/1/ 再次感謝很多! – mat 2012-07-18 20:42:40