Ajax调用PHP类中的PDO函数来更新页面


Ajax calling PDO function in PHP class to update a page

我有一个文件列表和一个下拉框,我希望用户能够按各种类别过滤它们。

我有一个php类,它具有创建sql查询并返回结果的功能。我非常想通过ajax来防止刷新。

我陷入困境,希望得到一些帮助。

问题是我不知道下一步该怎么办。这对我来说很新鲜,但仍然很陌生。如果ajax调用可以在select中的KeyUp上运行,那就更好了。

感谢您的帮助:

HTML:

<div>
  <form action="" method="post" name="orderBy">
    <label for="orderBy" id="orderBy">Order By:</label>
    <select>
      <option class="orderByOption" value="newest">Newest First</option>
      <option class="orderByOption" value="oldest">Oldest First</option>
      <option class="orderByOption" value="cat">Category</option>
      <option class="orderByOption" value="alpha">Aphabetical</option>
      <option class="orderByOption" value="fileType">Filetype</option>
    </select>
    <label> &nbsp; </label>
    <input type="submit" class="orderByTrainingButton" name="submit" value="Go!"/>
  </form>
</div>

Ajax:

//form for changing the ordering of items in training all docs
$(function(){
    $(".orderByTrainingButton").click(function(){
        //validate and process
        //get vlaue
        var option = $(".orderByOption").val();

        var params = {option: option};
        $.ajax({
            type: "POST",
            url: "../trainingOrderByAjax.php",
            data: params,
            dataType: 'json',
            success: function(data){
                if(data.success == true){
                    //aaaannnd. stuck/
                }else{
                    // shouldn't ge there...I hope.
                }
            },
            error: function( error ) {
                console.log(error);
            }
        });
    });
});

ajax将调用的php:

<?php
include_once('core/init.php');
if($_POST){
  $orderBy = $_POST['orderByOption'];
  if($training->getAlFilesOrderBy($orderBy)){
    $data['success'] = true;
  }else{
    $data['success'] = false;
  }
  echo json_encode($data);
}

从desc或asc开始订购会很棒。然后我可以在此基础上再接再厉。

类似的内容。

PHP:

if($results = $training->getAlFilesOrderBy($orderBy)){
    $data['success'] = true;
    $data['results'] = $results;
}else{
    $data['success'] = false;
}
echo json_encode($data);
}

JS:

    if(data.success){
        var results = data.results;
        for (var i = 0; i < results.length; i++) {
            // do something with results[i]
        }
    }else{
        // shouldn't ge there...I hope.
    }

将AJAX错误处理程序更改为:

error: function(xhr, status, errorMsg) {
    console.log("AJAX error: " + errorMsg);
}