我希望每隔3秒显示一次数据库而不刷新页面。 我写了这段代码但是我无法将SQL发送到控制器。
有人可以帮我吗?
$( document ).ready(function() {
function get_fb(){
var a='';
$.ajax({
url : "{{URL::action('DataController@post_appajax')}}",
type : "POST",
data : { a : a}
})
.done(function(json){
console.log(json);
});
}
setInterval(function(){get_fb();}, 3000);
});
</script>
public function post_appajax()
{
if(isset($_POST['a'])) {
$data = DB::select('SELECT * FROM catetory');
return View::make('data.index')
->with('data', $data);
}
}
答案 0 :(得分:0)
$( document ).ready(function() {
function get_fb(){
$.ajax({
url : "{{URL::action('DataController@post_appajax')}}",
type : "POST",
data : {action: 'refresh'}
})
.done(function(json){
console.log(json);
});
}
setInterval(function(){get_fb();}, 3000);
});
PHP
public function post_appajax()
{
if(Input::get('action') == 'refresh') {
return DB::table('category')->get();
}
}
答案 1 :(得分:0)
经过一些搜索,我写了这段代码
<script type="text/javascript">
$( document ).ready(function() {
function get_fb(){
$.getJSON('{{URL::to("admin/categories/al")}}',function(data){
var tb = $("#data")
tb.html('');
tb.append("<tr><td>Temperature</td><td>PH</td><td>CLOR</td><td>DATE</td></tr>")
data.forEach(function(elm){
tb.append("<tr><td>" + (elm["input1"])/10 + "'c</td><td>" + elm["input2"] + "</td><td>" + elm["input3"] + " ppm</td><td>" + elm["inputDate"] + "</td></tr>")
})
console.log(data)
});
}
setInterval(function(){get_fb();}, 1000);
});
</script>
Route::get('admin/categories', 'DataController@getIndex');
Route::get('admin/categories/al','DataController@al');
public function getIndex() {
$data = DB::select('SELECT * from data');
return View::make('data.index')
->with('data', $data);
}
public function al() {
$data = DB::select('SELECT * from data');
return json_encode($data);
}