javascript - 如何使用 php 和 jquery 更改带有选择选项的 sql 顺序值

标签 javascript php jquery mysql

我需要根据所选的选择选项更改 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);
        }
    })
}

});

显示.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);
    }

关于javascript - 如何使用 php 和 jquery 更改带有选择选项的 sql 顺序值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48437105/

相关文章:

javascript - 根据多个条件显示带有 ng-messages 的验证消息

javascript - 如何通过下拉菜单查看多个表?

php - 如何在 Laravel 5.2 中返回 JSON 格式的 403 响应?

php - 在特定的 Woocommerce 产品类别文件页面上显示产品属性

php - 如何使用 Mockery 在模拟方法的第 N 次调用中引发异常

javascript - 如何在水平菜单中排列子项

javascript - 在 &lt;textarea&gt; 中设置文本,包括换行符

javascript - jQuery 确认按钮不在弹出的确认()对话框中

javascript - 通过 jquery 获取多个选择框的值

javascript - 将数据从 http 请求传递到 C# Controller