2012-10-01 31 views
0

這裏是我的問題jQuery函數:

  • 在我的主頁我有城市名稱的選擇框。用戶選擇一個值,然後被帶到另一個(內部)頁面。
  • 只有在用戶直接打開它的情況下(即不是來自主頁),內部頁面才與城市名稱具有完全相同的選擇框。這是因爲在我的搜索過程中選擇一個城市是第一步。因此,如果用戶直接訪問內部頁面,他會選擇一個城市,並提交表單發射一個基於該城市值搜索的jQuery腳本。頁面佈局改變,但地址保持不變(jQuery重新排列元素,在左列中顯示過濾器選項)。
  • 在用戶從主頁到達的情況下,我希望用戶跳過內頁上的城市選擇,因爲他已經在主頁上選擇了它。
  • 我使用的TotalStorage插件捕捉主頁城市價值

基本上,我想通過檢查isset來訪問內部頁面的兩種方式分開($ _ POST [「城市主頁」]); 如果爲false,用戶直接訪問它,所以一切都很好。 如果這是真的,但是,我需要立即調用該jquery函數(search_workers())並自動將我的選擇框的值設置爲$ .totalStorage('city'),因爲這是寫入cookie時在主頁上選擇了城市。

function searchWorkers(){ 
    var result=false; 

    $.ajax({ 
     url: "<?php echo $this->action("search_workers"); ?>", 
     async: false, 
     type: "POST", 
     data: { 
      city: $("select[name=city]").val(), 
      help_wanted: $("#help_wanted").val(), 
      gender: $("#gender").val() 
     } 
    }).done(function(msg){ 
     result=JSON.parse(msg); 
    }); 

做我想做什麼的最佳做法是什麼?我不太熟悉Javascript,所以請理解我的問題是否愚蠢。

謝謝!

回答

0

所以,我設法找到了解決方案。

當用戶是在我的主頁,並選擇一個城市,我存儲在cookie中(與$ .totalStorage): REF =「家」和城市馬力=選定值 然後形式的行動帶他到實際搜索頁面。

當他到達那裏時,在文檔就緒函數中,我檢查ref變量的值'home'。如果爲true,我會調用我的worker_search函數,並在下一行將ref變量設置爲一個新值(因爲從這一點我不需要從主頁獲取任何內容)。 如果爲false(用戶不是直接來自主頁),我將ref設置爲'inner',因爲用戶將首先選擇城市,因此我不會在此調用該函數。

在我的函數worker_search中,我再次對ref進行評估,並根據結果我設置了select#城市的值: 如果'home',上面的值從cookie設置爲城市(這是用戶選擇的內容主頁) 如果'內部',值設置正常(根據城市用戶選擇)

這樣我的worker_search函數在兩種情況下爲其選擇的#city變量獲取值。

0

你應該讓你的PHP文件檢查是否設置了$ _POST ['city-homepage']。如果是這樣,你應該處理這些信息並相應地佈置頁面。你也可以讓php文件在下拉菜單中設置選定的城市。

<?php 
    if(isset($_POST['city-homepage'])) { 
    //output the page with all the layout and information needed since the user 
    //has selected the city already. And when creating the drop down box: 
    echo '<select name="city" onchange="searchWorkers()">'; 
    foreach($cities as $city) { // assuming $cities is an array containing 
            // the name of each city in the list 
    if($city==$_POST['city-homepage']) 
      $selected='selected="selected"'; 
    echo '<option value="'.$city.'" '.$selected.'>'.$city.'</option>'; 
    $selected=''; 
     } 
    } 
    else { 
     //display the page as though the user has not selected a city 
     } 
+0

布賴恩,謝謝你的回覆。我意識到你的方式,但是如果用戶來自主頁,我需要一種方法來激發我的jQuery函數,因爲從主頁繼承的值需要在函數中用於檢索結果。 請看下面我的(自己的)答案我是如何解決它的。 – developer10

相關問題