首页 > 解决方案 > 从 MySQL 数据库接收数据而不重新加载页面

问题描述

我正在尝试从数据库中检索数据,但是当get参数出现在地址栏中时,页面上没有任何变化,所以我必须刷新页面才能接收数据,而不是在没有刷新/重新加载的情况下接收它。

路线:

Route::get('writers/{orders?}/{number?}', ['as'=>'writers','uses'=> 'HomeController@writers']);

控制器:

 public function writers($order='all',$num=10){
    $dm = new DataModel();
    $orders = $dm->getCertainWriters($num);
    $this->certainOrders =$orders;

    return view('writers')->with(array('title'=>'Writers','data'=>$this->certainOrders,));

}

方法:

  public function getCertainWriters($orders = 'all'){
    $data = DB::select("SELECT * FROM `writers` WHERE `completed_orders` > '$orders'  ");

    return $data;
}

阿贾克斯:

 $("#ajax-orders").change(function(e) {
    var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
    var form = $(this);
    var url = form.attr('action');

    $.ajax({
        type: "GET",
        url: url,
          dataType:"html",
        headers: {       
            'X_CSRF_TOKEN':CSRF_TOKEN,
            'Content-Type':'application/json'
        },
        data: form.serialize(), // serializes the form's elements.
        success: function(data)
        {
           $(form).submit(e);
           var orders =  $('select').val();
             window.history.pushState("writer", "orders", "/writers/orders/"+orders);

        }

    });

     e.preventDefault(); // avoid to execute the actual submit of the form.
});

标签: phpmysqlajaxlaravel

解决方案


推荐阅读