如何用AJAX和JSON显示所有记录

时间:2015-01-03 04:59:38

标签: php ajax json laravel

我使用Laravel 4.2.0。我想创建表单搜索, 这是我在blade.php中的代码:

var date1 = $('[name=date1]').val();
var date2 = $('[name=date2]').val();
$.ajax({
   type: 'POST',
   url: "{{URL::to('filterCode')}}",
   data: "date1="+date1+"&date2="+date2, 
   dataType: 'json',
   success: function(data){
      console.log(data.code);                     
   }
});

这是控制器中的代码 filterCode

$date1 = Input::get('date1');
$date2 = Input::get('date2');

$filter = DB::table('orders')
                ->whereBetween('orders.date',array($date1,$date2))
                ->get();
foreach ($filter as $f) {
    $data = array('code' => $f->code);
    echo json_encode($data);
}

在数据库中记录:

----------------------
| code  |    date    |
----------------------
| A001  | 2015-01-08 |
----------------------
| A002  | 2015-01-18 |
----------------------
| A003  | 2015-01-20 |
----------------------

如果我选择2015-01-08的日期到2015-01-10,它将显示代码A001。 如果我选择2015-01-08的日期到2015-01-18,它应该显示代码A001直到A002。 但它没有显示任何东西。你能救我吗?

1 个答案:

答案 0 :(得分:0)

在控制器上试试这个。

$date1 = Input::get('date1');
$date2 = Input::get('date2');

$filter = DB::table('orders')
                ->whereBetween('date',array($date1,$date2))
                ->get();
$data = [];
foreach ($filter as $f) {
    $data = array_add($data, 'code', $f->code);
}
return Response::json(['data' => $data]);