0

这是我的问题:

  • 在我的主页上,我有一个带有城市名称的选择框。用户选择一个值,然后被带到另一个(内部)页面。
  • 该内页只有在用户直接打开它的情况下才具有与城市名称完全相同的选择框(即不是来自主页)。那是因为选择城市是我搜索过程中的第一步。
  • 因此,如果用户直接访问内页,他将选择一个城市,提交表单触发一个 jquery 脚本,该脚本基于该城市值进行搜索。页面布局更改但地址保持不变(jquery 重新排列元素,在左列中显示过滤器选项)。
  • 如果用户从主页到达,我希望用户跳过内页上的城市选择,因为他已经在主页上选择了它。
  • 我正在使用 totalStorage 插件来捕获主页城市值

基本上,我想通过检查 isset($_POST['city-homepage']); 来区分访问内页的两种方式;如果为 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不是很熟悉,所以请理解我的问题是否愚蠢。

谢谢!

4

2 回答 2

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
      }
于 2012-10-01T21:08:59.970 回答
0

所以,我设法找到了解决方案。

当用户在我的主页上并选择一个城市时,我存储在一个 cookie 中(使用 $.totalStorage): ref = 'home' AND city-hp = selected value 然后表单的操作将他带到实际的搜索页面。

当他到达那里时,在一个文档就绪函数中,我检查 ref 变量的值“home”。如果为真,我调用我的 worker_search 函数,并在下一行将 ref 变量设置为一个新值(需要,因为从此时起我不需要主页中的任何内容)。如果为 false (用户不是来自主页而是直接来自),我将 ref 设置为 'inner' 并且我不在这里调用该函数,因为用户将要先选择城市。

然后在我的函数worker_search中,我再次评估ref,并根据结果设置select#city的值:如果'home',上面的值设置为cookie中的城市(这是用户在主页上选择的)如果'inner ',值正常设置(根据用户选择的城市)

这样,我的 worker_search 函数在这两种情况下都会为其 select#city 变量获取值。

于 2012-10-02T14:01:27.887 回答