簡體   English   中英

Ajax 請求從數據庫中獲取數據並返回

[英]Ajax request fetching data from database and return it

我正在嘗試發出一個簡單的 Ajax 請求,該請求在控制器中可以從數據庫中獲取數據並返回。 現在我在視圖上有這個代碼:

$(".btn-submit").click(function(e) {
    e.preventDefault();
    var name = $("input[name=name]").val();
    var password = $("input[name=password]").val();
    var email = $("input[name=email]").val();

    $.ajax({
        type: 'POST',
        url: '/ajaxRequest',
        data: JSON.stringify({
            name: name,
            password: password,
            email: email
        }),
        dataType: "json",
        success: function(data) {
            console.log(data.lots);
            alert(data.success);
            $("#id").append(data.lots);
        }
    });
});

控制器上的這段代碼:

public function ajaxRequestPost(Request $request)
{
    $input = $request->all();
    $result = DB::select('select * from users');
    $enc = json_encode($result);
    $ht = "<h3>TESTE</h3>";

    return response()->json(['success' => 'Got Simple Ajax Request.', 'lots' => $enc]);
}

如何在視圖上回顯變量 $enc 的每一行?

首先,你不需要json_encode() $result變量,因為 Laravel 會為你處理這個。 您目前擁有的代碼在技術上意味着您需要再次解碼數據。

其次,您實際上並不需要使用response()->json()因為從路由/控制器方法返回一個數組無論如何都會自動轉換為 JSON。 這更多是僅供參考,而不是您實際需要做的事情。

將您的控制器方法更改為:

public function ajaxRequestPost(Request $request)
{
    return [
        'success' => 'Got Simple Ajax Request.',
        'lots'    => DB::select('select * from users'),
    ];
}

然后循環遍歷結果,您可以使用for循環:

success: function (data) {
    for (var i = 0; i < data.lots.length; i++) {
        console.log(data.lots[i]);
    }
}

或者因為您使用的是 jQuery $.each(...)

success: function (data) {
    $.each(data.lots, function (index, item) {
        console.log(item);
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM