gpt4 book ai didi

javascript - 如何在 HTML 中显示来自 Ajax 的数组数据(在 Laravel 4.1 中)

转载 作者:行者123 更新时间:2023-11-29 22:00:41 25 4
gpt4 key购买 nike

我正在对 Controller 进行 Ajax 调用,该 Controller 将数组数据返回到我的 View 。我想获取此数组数据并在单击时将其显示在 HTML 中。我不知道该怎么做。这是我目前所拥有的:

Ajax 调用:

request = $.ajax({ 
url: "/fans/follow",
type: "post",
dataType: 'json',
success:function(data){
console.log(data);

},
data: {'id': id} ,beforeSend: function(data){
console.log(data);
}
});

Controller 函数:

public function follow() {

$user_id = Auth::user()->get()->id;
$fan_id = Input::get('id');

$follow_array = Fanfollow::follows(Auth::user()->get()->id,0,7);

return Response::json( $follow_array );
}

关注我的 Fanfollow 模型中的功能:

public static function follows($user_id, $start = 0, $number_of_posts = 7) {
$follows = DB::table('fanfollows')
->join('fanartists', 'fanfollows.fan_id', '=', 'fanartists.fan_id')
->join('fans', 'fanfollows.fan_id', '=', 'fans.id')
->join('artists', 'fanartists.artist_id', '=', 'artists.id')
->orderBy('fanartists.created_at', 'DESC')
->where('fanfollows.user_id', '=', $user_id)
->take($number_of_posts)
->offset($start)
->select(DB::raw('DATE_FORMAT(fanartists.created_at, "%M %d %Y") as created_at, fans.id, fans.first_name, fans.last_name, fans.gender'))
->get();

return $follows;

}

基本上,我想将模型中以下函数返回的数据带到 View 中并打印出来。

成功后console.log(data)打印出[Object, Object, Object, Object, Object, Object, Object]

进一步单击显示每个对象确实是数组数据的正确“行”。我如何获取这些数据并将其显示在 HTML 中?

最佳答案

假设您想将返回的数据自动插入到以下容器中:

<table id="my-containing-data">
<tr>
<th>Id</th>
<th>First Name</th>
<th>Last Name</th>
<th>Gender</th>
<th>Created At</th>
</tr>
</table>

在您的成功事件中执行以下操作:

success: function(data){
$.each(data, function(index, obj){
var tr = $("<tr></tr>");

tr.append("<td>"+ obj.id +"</td>");
tr.append("<td>"+ obj.first_name +"</td>");
tr.append("<td>"+ obj.last_name +"</td>");
tr.append("<td>"+ obj.gender +"</td>");
tr.append("<td>"+ obj.created_at +"</td>");

$("#my-containing-data").append(tr);
});
}

但是!!!

如果你只想在点击时注入(inject)数据,你必须将返回的数据分配给一个变量。

ajax调用之前的某处:

var myReturnedData;

成功事件如下所示:

success: function(data){
myReturnedData = data;
}

点击事件:

$("#my-handler").on("click", function(e){
e.preventDefault();

$.each(myReturnedData, function(index, obj){
var tr = $("<tr></tr>");

tr.append("<td>"+ obj.id +"</td>");
tr.append("<td>"+ obj.first_name +"</td>");
tr.append("<td>"+ obj.last_name +"</td>");
tr.append("<td>"+ obj.gender +"</td>");
tr.append("<td>"+ obj.created_at +"</td>");

$("#my-containing-data").append(tr);
});
})

希望对你有用。

关于javascript - 如何在 HTML 中显示来自 Ajax 的数组数据(在 Laravel 4.1 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23926478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com