2015-10-30 2 views
0

Sry, для неясного названия вопроса, я надеюсь, что кто-то исправит его к чему-то более точному.поисковая система Google множественные параметры запрос

Ситуация:

Я использую Google пользовательского поиск, который установлен для поиска только два места и отображения результатов only.In панели управления GSE, когда я иду к расширенной вкладке функции поиска, я может указать параметр запроса, который он будет искать. после того, как я закончил, я получаю код javascript для вставки кода моей страницы.

Я считаю, что этот код javascript прослушивает переменную $ _GET ['q'], а затем создает результаты на основе этого.

Проблема:

У меня есть четыре поля на странице и форме PHP, созданную для отображения результата от других сайтов, конечный результат является URL с четырьмя получить переменные, такие как $ _GET [ «q1» ] до $ _GET ['q4']. У меня нет страницы $ _GET ['q'] на странице или где-либо еще.

Что я пробовал:

  1. Я просто не могу сделать более раннюю форму для печати другой или комбинированный параметр получить как $ _GET [ «д»]. я должен добавить много JS и скрытое поле ввода, я думаю.

  2. Я попытался установить $ _GET ['q'] в php как $_GET['q']=$_GET[q1];, а затем добавить javascript для пользовательской поисковой системы.

  3. Я попытался добавить ссылку для обновления или установить GET <a href="myurl.com?q=searchthis">anything</a>, но это не похоже на работу.

Я думаю, что причина может быть отсутствие знаний о том, как GSE получает ключевое слово, поиск и возвращает результат, а также отсутствие знаний о $ _GET параметр.

Вопрос:

  1. Во всяком случае, я могу установить $ _GET [ 'д'] в моем PHP скрипт (? Динамически), что Google пользовательского поиска Javascript будет понимать и работать свободно ??
  2. Есть ли другой лучший способ сделать это.

Это не нужно мне, чтобы показать код, но вот код, который может иметь отношение к вопросу:

GOOGLE CUSTOM 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> 

А вот мой PHP подход:

$_GET['q'] = $_GET['q1'] ; 

Любая помощь будет принята с благодарностью и надеюсь, что вы также сможете усовершенствовать функционирование GSE для других читателей. Спасибо, заранее

+0

Поисковая система Google не ищет вашу почту или сообщение (не уверен, почему), но на самом деле она выводит поисковый запрос из URL-адреса. –

ответ

0

Так что я был непонятно из вашего вопроса, если вам нужно искать ВСЕ запросы, или если пользователь только заполнит одну из форм.Если пользователь заполняет только одну форму, это должно сработать - используя PHP, чтобы проверить, какая переменная запроса используется, а затем, чтобы CSE посмотрел на этот параметр.

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

Если вам нужно объединить все ваши запросы в один, лучше всего, вероятно, будет переписывать URL, используя HTAccess, прежде чем он попадает на страницу, так что все параметры объединяются в один параметр запроса до страницы грузы. Затем установите для параметра queryParameterName значение, которое вы назвали этой переменной.

Если у вас нет доступа к созданию правила перезаписи на вашем сервере, вы можете изучить этот ответ: changing the query string without reloading the page. Просто сделайте это перед тегом, который оценивает строку запроса, чтобы выяснить, что вы ищете.

+0

Нашел решение, используя код v1. Он очень гибкий и обеспечивает много функциональности –