如何使用逗号和每个元素的引号来内爆$ _POST?

时间:2016-09-26 20:38:05

标签: php jquery ajax wordpress

我想要使用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中做些不同的事情吗?

感谢您的任何答案和/或指示!

2 个答案:

答案 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
);