Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery/JS:检查$u POST PHP变量,如果它存在,调用要执行的jQuery函数_Javascript_Jquery_Http Post - Fatal编程技术网

Javascript jQuery/JS:检查$u POST PHP变量,如果它存在,调用要执行的jQuery函数

Javascript jQuery/JS:检查$u POST PHP变量,如果它存在,调用要执行的jQuery函数,javascript,jquery,http-post,Javascript,Jquery,Http Post,我的问题是: 在我的主页上,我有一个带有城市名称的选择框。用户选择一个值,然后被带到另一个内部页面。 该内页有完全相同的选择框,只有在用户直接打开它的情况下才有城市名称,即不是来自主页。这是因为选择一个城市是我搜索过程中的第一步。 因此,如果用户直接访问内部页面,他将选择一个城市,提交表单,并使用jquery脚本根据该城市值进行搜索。页面布局更改,但地址保持不变。jquery重新排列元素,在左栏显示过滤器选项。 在用户从主页到达的情况下,我希望用户跳过内页上的城市选择,因为他已经在主页上选择了它

我的问题是:

在我的主页上,我有一个带有城市名称的选择框。用户选择一个值,然后被带到另一个内部页面。 该内页有完全相同的选择框,只有在用户直接打开它的情况下才有城市名称,即不是来自主页。这是因为选择一个城市是我搜索过程中的第一步。 因此,如果用户直接访问内部页面,他将选择一个城市,提交表单,并使用jquery脚本根据该城市值进行搜索。页面布局更改,但地址保持不变。jquery重新排列元素,在左栏显示过滤器选项。 在用户从主页到达的情况下,我希望用户跳过内页上的城市选择,因为他已经在主页上选择了它。 我正在使用totalStorage插件获取主页城市价值 基本上,我想通过检查isset$_POST['city-homepage',将访问内部页面的两种方式分开; 如果为false,则用户直接访问它,因此一切正常。 但是,如果为true,我需要立即调用jquery函数search\u 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,所以如果我的问题很愚蠢,请理解


谢谢

您应该让PHP文件检查是否设置了$\u 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
      }

所以,我设法找到了解决办法

当用户在我的主页上并选择一个城市时,我使用$.totalStorage存储在cookie中: ref=‘home’和city hp=所选值 然后表单的操作将他带到实际的搜索页面

当他到达那里时,在一个documentready函数中,我检查ref变量的值'home'。如果为true,我调用我的worker_search函数,并在下一行将ref变量设置为所需的新值,因为从这一点开始,我不需要主页上的任何内容。 如果false用户不是来自主页,而是直接来自主页,我将ref设置为'inner',我不会在这里调用该函数,因为用户将首先选择城市

在我的function worker_搜索中,我再次计算ref,并根据结果设置selectcity的值: 若“home”,则上述值从用户在主页上选择的cookie设置为city 如果为“内部”,则通常根据用户选择的城市设置值


这样,我的worker_搜索函数在这两种情况下都会为其selectcity变量获取值。

Bryan,感谢您的回复。我知道你的方法,但如果用户来自主页,我需要一种启动jQuery函数的方法,因为从主页带入的值需要在函数中用于检索结果。看看下面我自己的答案,我是如何解决的。