新手求教:怎么从数据库读取数据?
本人完全新手,给论坛大神添麻烦了,要指点这样一个新手。想从数据库读取数据,形成图表。情况如下:
ChartsController里面的内容:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
class ChartsController extends Controller
{
public function chartdata()
{
$range = \Carbon\Carbon::now()->subDays(365);
$data = DB::table('web_cpi_ppi')
->select('date', 'cpi', 'ppi')
->where('date', '>=', $range)
// ->orderBy('id', 'desc')
// ->take(10)
->get();
$result = $data->toArray();
return json_encode($result);
}
}
web.php里添加route,是get这个chartdata。然后浏览器访问这个chartdata,浏览器能显示一组json的数据,完全正常。
然后,我更改这个route的get为post。
Route::get('/chartdata', 'ChartsController@chartdata')->name('chartdata');
页面代码如下:
<div id="_test"></div>
<script>
function _test()
{
var datax;
$.post("{{ url('/chartdata') }}", {
"_token": "{{ csrf_token() }}"
}, function(data) {
datax = eval(data);
});
// var datax = [{"date":"2017-09-01","cpi":1.6,"ppi":6.9},{"date":"2017-10-01","cpi":1.9,"ppi":6.9},{"date":"2017-11-01","cpi":1.7,"ppi":5.8},{"date":"2017-12-01","cpi":1.8,"ppi":4.9},{"date":"2018-01-01","cpi":1.5,"ppi":4.3},{"date":"2018-02-01","cpi":2.9,"ppi":3.7},{"date":"2018-03-01","cpi":2.1,"ppi":3.1},{"date":"2018-04-01","cpi":1.8,"ppi":3.4},{"date":"2018-05-01","cpi":1.8,"ppi":4.1},{"date":"2018-06-01","cpi":1.9,"ppi":4.7}];
var ds = new DataSet();
var dv = ds.createView().source(datax);
// fold 方式完成了行列转换,如果不想使用 DataSet 直接手工转换数据即可
dv.transform({
type: 'fold',
fields: ['cpi', 'ppi'], // 展开字段集
key: 'indexType', // key字段
value: 'indexNumber' // value字段
});
var chart = new G2.Chart({
container: '_test',
中间有段json数组被备注掉的,就是上面get到的,我直接赋值给datax,图表能正常显示。如果是test()一开始那段,读取数据,再eval(),再赋值给datax,就啥也没显示。调试看到图表js里很多未定义,alert了datax,也是未定义,好像没获得数据。
请教大神,怎么样才能获得数据,赋值给datax?
不胜感激!!!
推荐文章: