Estoy creando una función de clasificación usando el menú desplegable de selección. No hay errores pero no funciona. ¿Hay alguna parte en la que lo estoy haciendo mal? Esto funciona bien cuando uso este método para filtros de casilla de verificación.
js
<script type="text/javascript"> $(function () { $('select').on('change', function () { $('#filter-posts-form').submit(); }); }); </script>php
<form id="filter-posts-form" method="post" action="main.php"> <div class="table-filter-group"> <select name="filter-posts" id="filter-posts" class="filter-posts" > <option value=""<?=(isset($_POST['MostPopular'])? 'selected':'')?>>Most Popular</option> <option value=""<?=(isset($_POST['Latest'])? 'selected':'')?>>Latest</option> </select> </div> </form> if(isset($_POST['MostPopular'])){ //function }elseif(isset($_POST['Latest'])){ //function }Esto funcionará sin Ajax, copie el formulario y pegue
<form id="filter-posts-form" method="post" action=""> <select name="filter-posts" id="filter-posts" class="filter-posts"> <option value="1" <?= (isset($_POST['filter-posts']) && $_POST['filter-posts'] == 1 ? 'selected' : '') ?>>Most Popular</option> <option value="2" <?= (isset($_POST['filter-posts']) && $_POST['filter-posts'] == 2 ? 'selected' : '') ?>>Latest</option> </select> </div> </form>Sospecho que simplemente no cargó jQuery ya que los códigos se ven bien.
intenta agregar esto al principio.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>