使用PHP将复选框转换为下拉列表

使用PHP将复选框转换为下拉列表,php,select,wordpress,Php,Select,Wordpress,我正在使用WP作业管理器插件,我想将作业类型复选框转换为下拉列表(灰色背景) 我试着把它改过来,但我运气不好。如何使用selected()函数执行此操作?谢谢 以下是我尝试过的片段: <?php if ( ! is_tax( 'job_listing_type' ) && empty( $job_types ) ) : ?> <ul class="job_types"> <?php foreach ( get_job_listing_type

我正在使用WP作业管理器插件,我想将作业类型复选框转换为下拉列表(灰色背景)

我试着把它改过来,但我运气不好。如何使用selected()函数执行此操作?谢谢

以下是我尝试过的片段:

<?php if ( ! is_tax( 'job_listing_type' ) && empty( $job_types ) ) : ?>
<ul class="job_types">
    <?php foreach ( get_job_listing_types() as $type ) : ?>
        <select name="filter_job_type[]">
            <option value='Collections' ". selected( $types['collections'], 'collections', false .">Collections</option>
        </select>
   <?php endforeach; ?>

    收藏
以下是“作业类型”复选框的片段:

<?php if ( ! is_tax( 'job_listing_type' ) && empty( $job_types ) ) : ?>
<ul class="job_types">
    <?php foreach ( get_job_listing_types() as $type ) : ?>
 <li>
  <label for="job_type_<?php echo $type->slug; ?>" class="<?php echo sanitize_title( $type->name ); ?>">
   <input type="checkbox" name="filter_job_type[]" value="<?php echo $type->slug; ?>" <?php checked( in_array( $type->slug, $selected_job_types ), true ); ?> id="job_type_<?php echo $type->slug; ?>" /> <?php echo $type->name; ?>
 </label>
</li>
<?php endforeach; ?>
</ul>
<input type="hidden" name="filter_job_type[]" value="" />
<?php elseif ( $job_types ) : ?>
<?php foreach ( $job_types as $job_type ) : ?>
    <input type="hidden" name="filter_job_type[]" value="<?php echo sanitize_title( $job_type ); ?>" />
<?php endforeach; ?>


  • 这可能对您有好处:

    <script>
    var select=jQuery(document.createElement('select')).insertBefore(jQuery('.load_more_jobs'));
    jQuery('.job_listing a').each(function(){
        jQuery(document.createElement('option')).appendTo(select).val(this.href).html(jQuery(this).html());
    });
    jQuery('.entry-content select').on('change',function(){
        if(!this.value)return;
        console.log(this.options[this.selectedIndex].innerHTML+": "+this.value);
        window.location.href=this.value;
    });
    jQuery('.job_listing').hide();
    </script>
    
    
    var select=jQuery(document.createElement('select')).insertBefore(jQuery('.load_more_jobs'));
    jQuery('.job_清单a')。每个(函数(){
    jQuery(document.createElement('option')).appendTo(select).val(this.href).html(jQuery(this.html());
    });
    jQuery('.entry content select')。on('change',function(){
    如果(!this.value)返回;
    console.log(this.options[this.selectedIndex].innerHTML+“:”+this.value);
    window.location.href=this.value;
    });
    jQuery('.job_listing').hide();
    
    您可以在head标签处尝试此项

    <script>
      (function($) {
        "use strict"
    
        $(function() {
          var $job_types_select = $('<select class="job_types_select"></select>');
          var $job_types_ul = $('form.job_filters ul.job_types');
          var $job_type_hidden = $('<input type="hidden" name="filter_job_type[]"/>');
          $job_types_ul.find('li').each(function() {
            var $li = $(this);
            var label_text = $li.find('label').text();
            var value = $li.find('input:checkbox').val();
            var $option = $('<option></option>');
            $option.text(label_text);
            $option.attr({value: value});
            $job_types_select.append($option);
          });
          $job_types_select.change(function() {
            var value = $(this).val();
            $('input:hidden[name="filter_job_type[]"]').val(value);
            var target   = $( this ).closest( 'div.job_listings' );
            target.triggerHandler( 'update_results', [ 1, false ] );
          });
          $job_types_ul.after($job_type_hidden);
          $job_types_ul.replaceWith($job_types_select);
        });
      })(jQuery);
    </script>
    
    
    (函数($){
    “严格使用”
    $(函数(){
    变量$job\u type\u select=$('');
    var$job_types_ul=$('form.job_filters ul.job_types');
    变量$job\u type\u hidden=$('');
    $job\u types\u ul.find('li')。每个(函数(){
    var$li=$(本);
    var label_text=$li.find('label').text();
    var value=$li.find('input:checkbox').val();
    var$期权=$('');
    $option.text(标签\文本);
    $option.attr({value:value});
    $job\u types\u select.append($option);
    });
    $job\u type\u select.change(函数(){
    var值=$(this.val();
    $('input:hidden[name=“filter_job_type[]”]).val(值);
    var target=$(this).closest('div.job_listings');
    triggerHandler('update_results',[1,false]);
    });
    $job\u type\u ul.after($job\u type\u hidden);
    $job\u types\u ul.replaceWith($job\u types\u select);
    });
    })(jQuery);
    
    我试着把那个片段放进去。但我这边不行。请查看我的更新问题@jaggedsoft如果我想在下拉列表旁边添加一个新按钮怎么办?如果单击该按钮,将显示所有空缺。如何做到这一点?或者如何在访问页面时显示所有作业,如果用户在下拉列表中选择一个选项,则仅显示该选项下的所有结果