如何使用laravel 4中的ajax从数据库中检索数据?
抱歉,我是ajax的新手,这只是我开始的代码HTML
<select id="bookstatus">
<option value="" disabled selected>Sort by Book Status</option>
<option value="1">For Rent</option>
<option value="2">For Barter</option>
</select>
js&amp; AJAX:
$('#bookstatus').on('change', function() {
var bs = document.getElementById("bookstatus");
var getbookstatus = bs.options[bs.selectedIndex].value;
$.ajax({
method: 'post',
url: 'discover',
data: {getbookstatus:getbookstatus},
success: function() {
}
});
});
路线:
Route::post('discover', 'BookController@getbook');
Route::get('discover', 'BookController@getbook');
我的控制员:
public function getbook(){
$bookstatus = Input::get('getbookstatus');
$getbook = DB::select("SELECT title FROM books WHERE forRent='$bookstatus' ");
我希望它会根据所选值显示图书
答案 0 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<select id="bookstatus">
<option value="" disabled selected>Sort by Book Status</option>
<option value="1">For Rent</option>
<option value="2">For Barter</option>
</select>
<br><br>
<span ><strong>Show the books </strong></span>
<div id="result">
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
console.log('ready work');
$(document).on('change','#bookstatus',function(){
var getbookstatus=$(this).val();
console.log(getbookstatus);
var op=" ";
$.ajax({
type:'get',
url:'{!!URL::to('findbookstatus')!!}',
data:{'statusid':getbookstatus},
success:function(data){
console.log(data);
console.log(data.length);
op+='<ul>';
for(var i=0;i<data.length;i++){
op+='<li>'+data[i].title+'</li>';
}
op+='<ul>';
$('#result').html(op);
},
error:function(){
console.log('error');
}
});
});
});
</script>
</body>
</html>
路线 Route::get('/discover','BookController@getbook');
Route::get('/findbookstatus','BookController@findbookstatus');
控制器 <?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class BookController extends Controller
{
public function getbook(){
return view('bookview');
}
public function findbookstatus(Request $request){
$getbook=DB::table('books')->select('title')->
where('forRent',$request->statusid)->take(100)->get();
return response()->json($getbook);
}
}
数据库连接
如果laravel 4.2 转到 config / database.php
'default' => env('DB_CONNECTION', 'mysql'),
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'your_database'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
如果laravel 5.3 转到 .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=root
DB_PASSWORD=
表格结构'书籍'
有关详细信息,您可以观看此视频 https://www.youtube.com/watch?v=N5ctY9nPt9o&feature=youtu.be