Javascript 谷歌自定义搜索引擎多参数查询

Javascript 谷歌自定义搜索引擎多参数查询,javascript,php,get,google-custom-search,Javascript,Php,Get,Google Custom Search,Sry,这个问题的标题不清楚,我希望有人能把它改得更准确一些 情况: 我使用的是谷歌自定义搜索引擎,设置为只搜索两个站点,只显示结果。在GSE的控制面板中,当我转到“搜索功能”中的“高级”选项卡时,我可以指定它将查找的查询参数。完成后,我会得到一个javascript代码粘贴到页面的代码中 我相信这段javascript代码会侦听$_GET['q']变量,然后根据该变量生成结果 问题: 我在一个页面中设置了四个字段和一个php表单来显示来自其他站点的结果,最终结果是带有四个get变量的URL,如

Sry,这个问题的标题不清楚,我希望有人能把它改得更准确一些

情况:

我使用的是谷歌自定义搜索引擎,设置为只搜索两个站点,只显示结果。在GSE的控制面板中,当我转到“搜索功能”中的“高级”选项卡时,我可以指定它将查找的查询参数。完成后,我会得到一个javascript代码粘贴到页面的代码中

我相信这段javascript代码会侦听$_GET['q']变量,然后根据该变量生成结果

问题:

我在一个页面中设置了四个字段和一个php表单来显示来自其他站点的结果,最终结果是带有四个get变量的URL,如$_-get['q1']到$_-get['q4']。我在页面或其他任何地方都没有$_GET['q']

我的尝试:

  • 我只是无法使早期的表单将另一个或组合的get参数打印为$\u get['q']。我想我必须添加很多JS和一个隐藏的输入字段

  • 我尝试在php中将$\u GET['q']设置为
    $\u GET['q']=$\u GET[q1]
  • 我尝试添加一个链接来更新或设置GET
    ,但这似乎不起作用

  • 我认为原因可能是缺乏关于GSE如何获取关键字、搜索和返回结果的知识,以及缺乏关于$\u GET参数的知识

    <?php
        if (isset($_GET['q1'])  && $_GET['q1'])
           {$param = 'q1';
           } elseif (isset($_GET['q2'])) {
          $param = 'q2';
           }
        echo "<gcse:search queryParameterName='".$param."'></gcse:search>";
    ?>
    
    问题:

  • 无论如何,我可以在我的php脚本(动态?)中设置$_GET['q'],让谷歌自定义搜索引擎javascript能够理解并流畅地工作
  • 还有其他更好的方法吗
  • 这不需要我显示代码,但以下是一些可能与问题相关的代码:

    谷歌自定义JAVASCRIPT

    <script>
      (function() {
        var cx = '010474608308939830468:6s3kklfffuu';
        var gcse = document.createElement('script');
        gcse.type = 'text/javascript';
        gcse.async = true;
        gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
            '//cse.google.com/cse.js?cx=' + cx;
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(gcse, s);
      })();
    </script>
    <gcse:searchresults-only></gcse:searchresults-only>
    

    非常感谢您的帮助,希望您也能为其他读者了解GSE的功能。谢谢,事先

    所以我不清楚您的问题是需要搜索所有查询,还是用户只需要填写其中一个表单。如果用户只填写一个表单,那么应该可以使用PHP检查使用了哪个查询变量,然后让CSE查看该参数

    <?php
        if (isset($_GET['q1'])  && $_GET['q1'])
           {$param = 'q1';
           } elseif (isset($_GET['q2'])) {
          $param = 'q2';
           }
        echo "<gcse:search queryParameterName='".$param."'></gcse:search>";
    ?>
    

    谷歌搜索引擎不会查找您的get或post(不确定原因),但实际上它会从url中提取搜索查询。使用v1代码找到解决方案。它非常灵活,提供了很多功能