2013-03-20 3 views
1

현재 내 사이트에 사용자가 직위 또는 키워드와 직장을 검색 할 위치를 입력 할 수있는 직업 게시판이 있습니다.검색 결과로 연결되는 링크

결과가 페이지 새로 고침없이 Jquery/AJAX를 사용하여 표시됩니다. 그러나 특정 검색에 대한 결과에 연결할 수 있기를 바랍니다. 예를 들어 OH에서 웹 개발 위치를 검색하면 링크를 클릭하여 이미로드 된 결과가있는 페이지로 직접 이동할 수있는 링크를 다른 사람에게 보낼 수 있기를 바랍니다.

나는 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

나는 이것이 작동 할 것이라고 생각하지 않는다. cURL을 사용하여 정보를 얻는 PHP 파일이 있으며 다른 데이터를 사용합니다. 나는 정말로 혼란스러워. 죄송합니다 – libra99

관련 문제