繁体   English   中英

如何使用php和jquery使用select选项更改sql order值

[英]How to change the sql order value with select option using php and jquery

我需要根据所选的选择选项更改sql的ORDER值,我有一个action.php,可从数据库中获取值。 我想放置一个排序选择选项,可以根据所选选项更改循环获取值的顺序。

action.php

if (isset($_POST["fetchValue"])) {  

echo '
 form name="sort" id="sort" action="" method="post">
 <div class="form-group">
     <label for="sort_item">Sort by: </label>
     <select name="sort_item" id="sort_item" class="form-control">
     <option value="age">Date of birth</option>
     <option value="last_name">Last Name</option>
     </select>
 </div>
 </form>';

 $fieldNameMapping = array(
        'age'     => 'dob',
        'last_name' => 'user_lastname');

$sql = "SELECT * FROM test_field_tb tf
        INNER JOIN users u ON tf.user_id = u.user_id
        WHERE tf.user_id = 5
        ORDER BY '".$fieldNameMapping[$_POST['sort_item']]."' "; // need to change that value base on the selected option

$run_query = $conn->query($sql);

while ($row = $run_query->fetch(PDO::FETCH_ASSOC)) {
...
 }

jQuery-js文件

$(document).ready(function() {
$("#sort_item").change(function() {
    //get the selected value
    var selectedValue = this.value;

    //make the ajax call
    $.ajax({
        url: 'action.php',
        type: 'POST',
        data: {sort_item : selectedValue},
        success: function(data) {
            //how to i change the sql value here
        }
    });
});


function getFetch(){
    $.ajax({
        url :   "action.php",
        method: "POST",
        data    :   {fetchValue:1},
        success :   function(data){
            $("#get_display").html(data);
        }
    })
}

});

display.php

<div id="get_display"></div>

收到错误:未定义的索引:sort_display $fieldNameMapping[$_POST['sort_item']]

需要有条件地添加ORDER BY

$sql = 'SELECT * FROM test_field_tb tf
        INNER JOIN users u ON tf.user_id = u.user_id
        WHERE tf.user_id = 5 ';
if (!empty($_POST['sort_item']))
        $sql .= "ORDER BY '".$fieldNameMapping[$_POST['sort_item']]."' ";

然后在ajax调用的success处理程序中,如下所示填充框:

success: function(data) {
        $('#get_display').html(data);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM