2012-06-23 23 views
6

Wordpress ajax arama sonuçları oluşturmam gerekiyor, ancak düğm tıklandığında ve benim başka bir siteye yönlendiriliyorken, yöntemim sonuçları almıyordur (myurl.com? s = terim). Admin-ajax.php dosyasını doğru aradım ama yanlış ayarladı. Soruna neden olan herhangi bir fikir var mı?JQuery wordpress için ajax arama sonuçlarını almak için nasıl kullanılır?

//Script to activate ajax 
jQuery(document).ready(function($){ 
    var search_val=$("#s").val(); 
    $('#searchsubmit').click(function(){ 
    $.post(
     WPaAjax.ajaxurl, 
     { 
      action : 'wpa56343_search', 
      search_val : search_val 
     }, 
     function(response) { 
      $('#results').append(response); 
     } 
    ); 
    }); 

}); 

//function to setup wp_query 
add_action('wp_ajax_wpa56343_search', 'wpa56343_search'); 
function wpa56343_search(){ 
    global $wp_query; 
    $search = $_POST['search_val']; 
    $args = array(
    's' => $search, 
    'posts_per_page' => 5 
); 
    $wp_query = new WP_Query($args); 

    get_template_part('search-results'); 

    exit; 
} 

//html 

    <div id="my_search"> 
    <form role="search" method="get" id="searchform" action="http://myurl.com/" > 
    <input type="text" value="" name="s" id="s" /> 
    <input type="submit" id="searchsubmit" value="Search" /> 
    </form> 
    </div> 
    <div id="results"></div> 

cevap

9

Sen document.ready

$(document).ready(function(){ 
    $("#searchsubmit").click(function(e){ 
     e.preventDefault(); 
     var search_val=$("#s").val(); 
     $.post(search.php,{search_string:search_val},function(data){ 
      if(data.length>0){ 
       $("#results").html(data); 
      } 
     }); 
    }); 
}); 

Update kodunuzu yerleştirilmeli:

$(document).ready(function(){ 
    $("#searchsubmit").click(function(e){ 
     e.preventDefault(); 
     var search_val=$("#s").val(); 
     $.ajax({ 
      type:"POST", 
      url: "./wp-admin/admin-ajax.php", 
      data: { 
       action:'wpa56343_search', 
       search_string:search_val 
      }, 
      success:function(data){ 
       $('#results').append(response); 
      } 
    }); 
}); 

sizin functions.php

add_action('wp_ajax_nopriv_wpa56343_search', 'wpa56343_search'); // for not logged in users 
add_action('wp_ajax_wpa56343_search', 'wpa56343_search'); 
function wpa56343_search() 
{ 
    // code 
} 
+0

Benim search.php çocuk tema şudur: Daha fazla bilgi için bu tam öğretici okumak, çok typeahead.js jquery eklentisi kullanabilirsiniz. Bu .post hattında herhangi bir fark yaratır mı? –

+0

, search.php dosyanızın uygun URL'sini verin, burada, konsoldaki hatayı kontrol edin. –

+0

yeap problemdi. Elimi tuttuğun için teşekkürler! –

İlgili konular