2013-03-20 4 views
1

У меня в настоящее время есть доска объявлений на моем сайте, где пользователи могут указывать название работы или ключевое слово и место для поиска работы.Ссылка на результаты поиска

Результаты отображаются с использованием Jquery/AJAX без обновления страницы. Тем не менее, я хотел бы иметь возможность ссылаться на результаты для конкретного поиска. Например, если я ищу позиции для веб-разработки в ОН, я хотел бы иметь возможность отправить ссылку кому-то еще, кто сможет щелкнуть ссылку и перейти непосредственно на страницу с уже загруженными результатами.

У меня есть некоторые знания PHP, но ни один из Ajax или Javascript/Jquery, поэтому мне так сложно. Я надеюсь, кто-то может мне помочь.

Вот код, который в настоящее время отображения результатов:

jQuery(document).ready(function ($) { 
     // search button clicked 
     jQuery("input[name='indeedsearchbutton']").click(function() { 
      indeedsearchbusy(); 
      indeedsearchcall(); 
     }) 

     // reset page if query changes 
     jQuery("input[name='q']").change(function() { 
      jQuery("input[name='start']").val(1); 
     }) 

     // reset page if location changes 
     jQuery("input[name='l']").change(function() { 
      jQuery("input[name='start']").val(1); 
     }) 

     if (autosearch) { 
      indeedsearchbusy(); 
      indeedsearchcall(); 
     } 
    }) 

    // pagination set start position 
    function setstart(s) { 
     jQuery("input[name='start']").val(s); 
     indeedsearchbusy(); 
     indeedsearchcall(); 
    } 

    // get json data from inputs for ajax call 
    function getdata() { 
     var d = { 
      action: 'indeedcallback', 
      q: (jQuery("input[name='q']").length != 0 ? jQuery("input[name='q']").val() : jQuery("select[name='q']").val()), 
      l: jQuery("input[name='l']").val(), 
      start: jQuery("input[name='start']").val() 
     } 
     return d; 
    } 

    // display json results from ajax call 
    function indeeddisplayresults(resultsjson) { 
     var rpage = ""; 
     if (resultsjson.pagination) rpage += resultsjson.pagination; 

     if (resultsjson.html) rpage += resultsjson.html; 

     if (resultsjson.pagination) rpage += resultsjson.pagination; 

     jQuery("div#indeedsearchresults").html(rpage); 
    } 

    // ajax call to search indeed 
    function indeedsearchcall() { 
     var data = getdata(); 
     jQuery.post(wpajaxurl, data, function (response) { 
      resultjson = eval("(" + response + ")"); 
      if (resultjson) { 
       indeeddisplayresults(resultjson); 
      } 
     }) 
    } 

ответ

0

Я бы просто использовать URL и своего рода hashbang (GETish) функциональности. Поэтому каждый раз, когда кто-то выполняет поиск, URL-адрес изменяется, и каждый раз, когда страница загружается, он просматривает URL-адрес параметров поиска, и если они существуют, выполняется поиск ...

Есть хороший GIST на этом с полным объяснением кода ниже: https://gist.github.com/miohtama/1570295

function parseHashBangArgs(aURL) { 

aURL = aURL || window.location.href; 

var vars = {}; 
var hashes = aURL.slice(aURL.indexOf('#') + 1).split('&'); 

for(var i = 0; i < hashes.length; i++) { 
    var hash = hashes[i].split('='); 

    if(hash.length > 1) { 
     vars[hash[0]] = hash[1]; 
    } else { 
     vars[hash[0]] = null; 
    }  
} 

return vars; 

}

ОК ссылкой на ваш вопрос о том, как использовать это: Я сделал рабочий пример (код ниже), но вы должны внедряйте в свой собственный код (я не могу сделать буквально все для вас) ...

<input id="searchBar" type="text" value="enter search here" /><br /> 
<input id="theButton" type="button" name="" value="getHash" /><br /> 
Hash value is: <a id="hashValue"></a> 

jQuery(document).ready(function ($) { 
    $('#searchBar').change(function() { 
     search(document.getElementById('searchBar').value) 
    }); 
    $('#theButton').click(function() { 
     getHash(); 
    }); 
}) 
function search(searchTerms){ 
    location.hash = "searchTerm="+searchTerms; 
} 

function getHash(){ 
    var hashObj= new Object(); 
    hashObj=(parseHashBangArgs()) 
    document.getElementById('hashValue').innerHTML=hashObj.searchTerm; 
} 

function parseHashBangArgs(aURL) { 
... code from GIST above... 
+0

Я действительно видел это раньше, но проблема в том, что я понятия не имею, как его реализовать. Я никогда не работал с чем-то подобным раньше; код выше - из бесплатного плагина WordPress, который я использую. Есть ли способ помочь мне? Благодаря! – libra99

+0

Как это ???? –

+0

Я не думаю, что это сработает. Существует PHP-файл, который использует cURL для получения информации и использует целую кучу других данных. Я просто очень смущен. Извините – libra99

Смежные вопросы