如何按名称在产品 ASC 和 DESC 上添加过滤器(已经有按 ID 过滤器)

我正在尝试一些可能的解决方案,但没有奏效。因为 SELECT 有一个 ONCHANGE,我不知道如何添加名称排序代码以添加到我的 ID 排序中。


按 ID(日期)从最新到最旧排序,我不知道如何使用 sortByNameAsc 和 Desc 进行排序


  <select id="sortBy" onchange="searchFilter();">

  <option value="">Date: Newest First</option>

  <option value="asc">Date: Oldest First</option>

  <option id="sortByNameASC" value="asc">Ascending by name</option>

  <option id="sortByNameDESC"value="desc">Descending by name</option>

</select>

试图让它与添加变量一起工作


function searchFilter(page_num) {

  page_num = page_num?page_num:0;

  var keywords = $('#keywords').val();

  var sortBy = $('#sortBy').val();

    var sortByNameASC = $('#sortByNameASC').val();

    var sortByNameDESC = $('#sortByNameDESC').val();

  $.ajax({

    type: 'POST',

    url: 'getData.php',

    data:'page='+page_num+'&keywords='+keywords+'&sortBy='+sortBy+'&sortByNameASC='+sortByNameASC+'&sortByNameDESC='+sortByNameDESC,

    beforeSend: function () {

    },

    success: function (html) {

      $('#postContent').html(html);

    }

  });

}

getData.php,所以我想添加 'ORDER BY name ASC 和 DESC,我也尝试在下面添加元素,但没有成功。


  if(!empty($_POST['sortBy'])){

        $orderSQL = " ORDER BY id ".$_POST['sortBy'];

    }else{

        $orderSQL = " ORDER BY id DESC";

    }

$query = $connect->query("SELECT * FROM products $orderSQL");

这可能吗?


UYOU
浏览 90回答 1
1回答

哆啦的时光机

通过使用爆炸修复它:&nbsp; &nbsp; $result = $_POST['sortBy'];&nbsp; &nbsp; &nbsp; $result_explode = explode('|', $result);&nbsp; &nbsp; &nbsp; echo $orderSQL = " ORDER BY ".$result_explode[0]." ".$result_explode[1];第一个结果 explode 是“name”或者可以是 ID。第二个结果 explode 是 ASC 或 DESC。
打开App,查看更多内容
随时随地看视频慕课网APP