2016-09-19 11 views
0

我試圖在複選框被選中時將多個值添加到特定數據參數'category_values'如何將多個值作爲對象添加到jQuery ajax請求中的單個參數?

category = [] 
       jQuery('#rpd_filter_categ:checked').map(function() { 
        category.push(jQuery(this).attr('data-value')); 
       }); 

category = jQuery('#rpd_filter_categ:checked').attr('data-value'); 

jQuery.ajax({ 
     type: 'POST', 
     url: ajaxurl, 
     // dataType: 'json', 
     traditional: true, 
     data: { 
      'action'   : 'ajax_filter_listings', 
      'action_values'  : action, 
      'category_values' : category, 
      ... 
     }, 
     success: ... 

function ajax_filter_listings(){ 
$categ_array    = ''; 

    $allowed_html = array(); 
     if (isset($_POST['category_values']) && trim($_POST['category_values']) != 'All Types' && $_POST['category_values']!=''&& $_POST['category_values']!='all' && $_POST['category_values']!='all-types'){ 
      $taxcateg_include = sanitize_title (wp_kses( $_POST['category_values'],$allowed_html )); 
      $categ_array=array(
       'taxonomy' => 'property_category', 
       'field' => 'slug', 
       'terms' => $taxcateg_include 
      ); 
     } 

它適用於一個單一的檢查選項,但與2+選項選中或者獲得:

  • 沒有結果
  • 只有第一個選項的字母順序
  • 最後選項選擇

當我檢查console -> request -> postData它:

  • 將值之間的字符%2C
  • 創建用於第二個值

我只是困惑自己進一步更我看看這個...任何人都可以點我朝着正確的方向的新對象?

任何幫助非常感謝!

+0

要嘗試和更好地解釋......我試圖使用數據值的屬性(公寓,排屋,別墅等)來創建array/object發送給jQuery ajax請求作爲'category_values',這樣當選項被選中時,php會用這些數據值過濾結果。 – Jeff

回答

0

您的字段似乎都有相同的ID(rpd_filter_categ),但ID應該是唯一的,所以最好使用它作爲類名。

使用類你可以讓你的類別是這樣的:

var categories = []; 
jQuery('.rpd_filter_categ:checked').each(function() { 
    categories.push(jQuery(this).attr('data-value')); 
}); 

jQuery.ajax({ 
etc... 
+0

哦,我看到了,認爲我修復了這個問題,或者我可能會複製它。無論如何,通過id或class進行定位仍然會返回相同的結果。在運行上面的示例時,它會在選中一個複選框的情況下起作用,從而精確地過濾結果一旦第二個複選框,它只顯示最後一個選項的檢查結果(在數組內)。我可以console.log,並看到它的添加.. 在Chrome中我可以去控制檯 - >對象 - >請求 - > postData - > PARAMS:它創建一個額外的對象與每個對象的名稱和值,似乎只讀最後一個? – Jeff

+0

如果您在'ajax'調用之前添加'console.log(categories)',您會得到什麼輸出? – phpchap

+0

ajax請求之前和之後都是一樣的: [「apartments」,「townhomes」]但它只是過濾房屋的結果。 – Jeff

相關問題