带选择过滤器的表

gj3fmq9x  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(331)

我有一个包含4列的表,我想通过select表单对其进行排序。
例如,这里我有一个select来对type列(第3列)进行排序,有3种可能性:-site sportif-site de bloc-terrain d'aventure
你是怎么做到的?

<div class="stages">                 
<form id="form-sne-filtre" method="post">
    <div>
        <select name="type" id="select_1">
            <option value=""><?php _e('Filtrer par type'); ?></option>
            <option value="0"> <?php _e('Site Sportif'); ?></option>
            <option value="1"><?php _e('Site de bloc'); ?></option>
            <option value="2"><?php _e('Terrain d\'aventure'); ?></option>
        </select>
    </div>
</form>

<table id="myTable">
<thead>
    <tr>
        <th><?php _e('Nom'); ?></th>            
        <th><?php _e('Ville'); ?></th>
        <th><?php _e('Type'); ?></th>
        <th><?php _e('Niveau'); ?></th>
    </tr>
</thead>

<tbody>
    <?php foreach($_POST as $key => $value){
        if($value != "") $args[$key] = $value;
    }
    foreach($snes->items as $sne) { ?>
        <tr>
            <td><a href="<?php bloginfo('url'); ?>/sne-fiche/<?php echo $sne->ID_SNE; ?>/"><?php echo $sne->SNE_VILLE; ?> <?php echo $sne->SNE_NOM; ?></a></td>
            <td><?php echo $sne->SNE_COMMUNES; ?></td>
            <td><?php
$array = array(0 => __('Site sportif'),1 => __('Site de bloc'), 2 => __('Terrain d\'aventure'));
echo $array[$sne->SNE_TYPESITE];
?></td>
            <td><?php _e("Nombre de voies : "); ?><?php echo $sne->SNE_NBRVOIES; ?> <?php _e('De'); ?> <?php echo $sne->SNE_NIVEAUVOIE_MIN; ?> <?php _e('à'); ?> <?php echo $sne->SNE_NIVEAUVOIE_MAX;; ?></td> 
        </tr>
    <?php } ?>

</tbody>
</table>
</div>
mzmfm0qo

mzmfm0qo1#

如果您使用的是jquery,则可以在用户选择排序选项时提交表单:

1. 绑定事件

在下面添加以下标记 div.stages 标签

<script>
$("#select_1").on("change", function(e) => {
    $("#form-sne-filtre").submit();
})
</script>

2. php中的handle post参数

<?php 
   $sort = $_POST["type"] ?? "";
   $snes = sortSnes($snes, $sort); // you have to implement sortSnes function by yourself, don't ask me
?>
<tbody>
<?php foreach($snes as $sne): ?>
<tr>
   // render table rows
</tr>
<?php endforeach;?>
</tbody>

相关问题