2012-08-22 37 views
1

這裏自定義字段使用AJAX值是情景:獲得WordPress的

  • 有幾個產品類別(產品是指在 特定類別的職位)
  • 每個產品(後)有幾個圖片
  • 在前端(我加入 自定義字段管理吧),產品將顯示所有一起
  • 該網頁上會出現一個像滑塊在頁腳
  • 點擊每個產品的名稱,將相應地改變滑塊圖像 所點擊產品

因此,所有我需要的是得到對應單擊產品的自定義字段值。是否有可能使用AJAX請求來做到這一點?這樣我就可以管理所有這些過程而不需要回帖。

謝謝。

+0

簡單的請求一個ajax調用點擊項目名稱或放一些代碼剪斷並告訴我們你試過了什麼? –

+0

你好,謝謝你的回覆。我還沒有嘗試過任何東西。我沒有得到一個起點。所有我知道的是「admin-ajax.php」管理所有的ajax請求。你能舉個例子嗎? –

+0

我不會在文字按下exp,但我會找出一些東西,並會嘗試將一些ccode剪下來,但您可以嘗試通過簡單的調用jqueyy函數和ajax請求url在您的手中,這不是neccesaay使用admin_ajax.php whaetever網址你會提出請求必須去那個頁面。任何希望有一些聰明的詞新聞開發人員將幫助你肯定 –

回答

1

這很簡單。 Ofjourse感謝Rajat Modi在ajax的幫助。在這裏你去:

在模板文件中這個到functions.php中添加:

wp_enqueue_script('ajax-script', get_stylesheet_directory_uri().'/js/myajax.js', array('jquery'), 1.0); // jQuery will be included automatically 
    // get_template_directory_uri() . '/js/script.js'; // Inside a parent theme 
    // get_stylesheet_directory_uri() . '/js/script.js'; // Inside a child theme 
    // plugins_url('/js/script.js', __FILE__); // Inside a plugin 
    wp_localize_script('ajax-script', 'ajax_object', array('ajaxurl' => admin_url('admin-ajax.php'))); // setting ajaxurl 

    add_action('wp_ajax_ajax_action', 'ajax_action_stuff'); // ajax for logged in users 
    add_action('wp_ajax_nopriv_ajax_action', 'ajax_action_stuff'); // ajax for not logged in users 
    function ajax_action_stuff() 
    { 
     $post_id = $_POST['post_id']; // getting variables from ajax post 
     // doing ajax stuff 
     $custom_fields = get_post_custom($post_id); 
     $imageurlset = $custom_fields['images']; 
     $urlstring = $imageurlset[0]; 
     $imageurl = explode(',', $urlstring); 
     //update_post_meta($post_id, 'post_key', 'meta_value'); 
     exit(json_encode($imageurl)); // stop executing script 
    } 

創建並添加以下代碼爲 「/js/script.js」:

$(document).ready(
    function() { 
     $('.prduct_name').click(function() { 
     $('.spcl_content').find('.prduct_name').removeClass("selected"); 
     $(this).addClass("selected"); 
     var ithis = $(this); 
     $.post(ajax_object.ajaxurl, { 
      action: 'ajax_action', 
      post_id: ithis.attr("id") 
     }, function(data) { 
      var number_of_images = data.length; 
      //console.log(data); 
      var image_link=""; 

      for(var i=0; i<number_of_images; i++) 
       { 
        var image_url = data[i]; 
        image_link = image_link+'<li><a href="'+image_url+'" rel="scroller" target="temp_win"><img src="'+image_url+'"/></a></li>' 


       } 

      //console.log(image_link); // alerts 'ajax submitted' 
      var starting='<div class="wt-scroller"><div class="prev-btn"></div><div class="slides"><ul class="slider_mania">'; 
      var ending='</ul></div><div class="next-btn"></div><div class="lower-panel"></div></div>'; 
      var total=starting+image_link+ending; 
      //console.log(total); 
      $(".container_carol").html(total).fadeIn("slow"); 

     },"json"); 

    return false; 

    }); 

我希望現在很清楚。再次感謝我的朋友的回覆。祝你有美好的一天。 :)

+0

我的情況是有點不同,那麼你。我有一個關於這個鏈接的問題 - > http://stackoverflow.com/questions/14416409/wordpress-custom-metabox-input-value-with-ajax你能回答我嗎 – zxprince

2

我還沒有經驗的WordPress,但我可以告訴你的AJAX的例子。

據我所知,你必須調用阿賈克斯函數點擊相關的帖子或產品是這樣的。

<script> 
    jQuery(document).ready(function() { 

    jQuery("#PRODCUTID").click(function() { 
     jQuery.ajax({ 
     type : "POST" 
     ,url :"YOUR_URL_ON_WHICH_YOU_PUT_LOGIC_TO_FETCH_IDS_FOR_SLIDER" 
     ,data :"CLICKED_PRODUCT_ID="+CLICKED_PRODUCT_ID // this the variable which will be posted and will find it (particular URL which you passed) on the controller action or in view file 
     ,success : function(data){    
      //YOUR CODE HERE WHICH IS REPLACING PRODUCT ID 
     } 
     ,beforeSend: function(html){ 
      //some kind of loader or text mean while data is waiting for the response 
       }, 
      }); 
     }) 
}) 
</script> 

希望這將有助於並隨時爲AJAx請求提出任何要求。