Php 多参数信息集
我正在尝试在我的网站上创建一个类别过滤器,允许用户在两个类别列表中选择一个类别。一个列表称为“区域”,另一个列表称为“业务类型”。单击表单上的“提交”按钮时,页面应刷新,并且仅显示用户选择的类别中的帖子。这是完整的代码:Php 多参数信息集,php,wordpress,forms,isset,Php,Wordpress,Forms,Isset,我正在尝试在我的网站上创建一个类别过滤器,允许用户在两个类别列表中选择一个类别。一个列表称为“区域”,另一个列表称为“业务类型”。单击表单上的“提交”按钮时,页面应刷新,并且仅显示用户选择的类别中的帖子。这是完整的代码: $zones = get_field('zones_list'); $business_types = get_field('business_type'); echo'<form role="search" method="post" id="searchform"&
$zones = get_field('zones_list');
$business_types = get_field('business_type');
echo'<form role="search" method="post" id="searchform">
<div>';
foreach( $zones as $zone ):
echo'<input type="radio" value="'.$zone->slug.'" name="zone_list[]">'.$zone->name.'</input>';
endforeach;
echo'</div>
<div>';
foreach( $business_types as $business_type ):
echo'<input type="radio" value="'.$business_type->slug.'" name="business_type[]">'.$business_type->name.'</input>';
endforeach;
echo'</div>
<input type="submit" id="searchsubmit" value="Submit" />
</form>';
if(isset($_POST['zone_list'])) {
$list_name = $_POST['zone_list'];
$list_formated = implode('+', $list_name);
} else if (isset($_POST['business_type'])) {
$list_name = $_POST['business_type'];
$list_formated = implode('+', $list_name);
} else if (isset($_POST['zone_list'], $_POST['business_type'])) {
$list_name_1 = $_POST['zone_list'];
$list_name_2 = $_POST['business_type'];
$list_both = array_merge($list_name_1,$list_name_2);
$list_formated = implode('+', $list_both);
} else {}
$args = array(
'post_type' => 'post',
'orderby' => 'date',
'category_name' => $list_formated,
'order' => 'DESC',
'posts_per_page'=> '3',
'paged' => get_query_var( 'paged' ),
);
global $wp_query;
$wp_query = new WP_Query( $args );
if( $wp_query->have_posts() ):
while( $wp_query->have_posts() ): $wp_query->the_post(); global $post;
我只是在学习PHP,所以可能有更好的方法,但这是迄今为止我找到的唯一解决方案。我真的很感激能得到的任何帮助 你可以这样写 如果(isset($_POST['zone_list'])和&isset($_POST['business_type'])){
&&表示两个ISSET都必须为真。您可以编写&&or and,它是相同的。我尝试了此操作,但仍然不起作用。我不知道为什么,但由于某些原因,它从未运行过该条件。当您选择两个类别时,它只运行第一个条件。因为第一个语句为真,其他语句不起作用。请将if-elseif-else分开如果不是这样的话,谢谢你!谢谢你!
else if (isset($_POST['zone_list'], $_POST['business_type'])) {
$list_name_1 = $_POST['zone_list'];
$list_name_2 = $_POST['business_type'];
$list_both = array_merge($list_name_1,$list_name_2);
$list_formated = implode('+', $list_both);
} else {}