如何使用laravel 4中的ajax从db中检索数据?

时间:2017-01-04 03:49:42

标签: javascript ajax laravel laravel-4

如何使用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' ");

我希望它会根据所选值显示图书

1 个答案:

答案 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=

表格结构'书籍'

enter image description here

有关详细信息,您可以观看此视频 https://www.youtube.com/watch?v=N5ctY9nPt9o&feature=youtu.be