我想要使用WP Query的ajax请求过滤搜索结果。 单个选中选项的工作然后在选中的第二个选项中断 示例数据值:公寓,联排别墅
jQuery / AJAX :
category = [];
jQuery('.rpd_category:checked').each(function() {
category.push(jQuery(this).attr('data-value'));
});
data: {
'category_values' : [category],
},
console.log(category) = ["apartments", "townhomes"]
PHP :
$taxcateg_include = $_POST['category_values'];
$categ_array=array(
'taxonomy' => 'property_category',
'field' => 'slug',
'terms' => array( $taxcateg_include ),
);
echo $taxcateg_include = apartments,townhomes
我想为每个元素添加单引号,并用逗号和空格分隔元素"," ..
目标:
'terms' => array( 'apartments', 'townhomes' ),
我尝试使用内爆但不起作用? $_POST['category_values']
将元素作为字符串返回吗?
我应该在jQuery中做些不同的事情吗?
感谢您的任何答案和/或指示!
答案 0 :(得分:0)
你在javascript和php
中包装外部数组中现有数组的事情变得复杂了在javascript更改中:
data: {
'category_values' : [category],
}
要
data: {
'category_values' : category// this is already an array you pushed to
}
在php中,您不需要创建一个与您已有的数组完全相同的新数组。
$taxcateg_include = $_POST['category_values'];// is already an array
$categ_array=array(
'taxonomy' => 'property_category',
'field' => 'slug',
'terms' => $taxcateg_include // is array
);
答案 1 :(得分:0)
我想我明白你要做什么。您想将POSTed字符串转换为数组并将其添加到$categ_array['terms']
,对吗?试试这个:
// Assuming $_POST['category_values'] === 'apartments,townhomes';
$taxcateg_include = explode(',' $_POST['category_values']);
$categ_array= array(
'taxonomy' => 'property_category',
'field' => 'slug',
'terms' => $taxcateg_include
);