首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax + Laravel 5.2 +为每个按钮添加一个属性,按钮是由@foreach循环生成的

Ajax + Laravel 5.2 +为每个按钮添加一个属性,按钮是由@foreach循环生成的
EN

Stack Overflow用户
提问于 2017-05-22 14:48:43
回答 1查看 61关注 0票数 0

我的观点是:

代码语言:javascript
复制
@foreach ($social_networks as $social_network)
    {{ $social_network->displayName}}
@endforeach

我的控制器:

代码语言:javascript
复制
$social_networks = DB::table('social_networks')->get();

if(Auth::user()->admin)
{
    return view('adminDashboard')
            ->with('social_networks', $social_networks)
            ->with('i', ($request->input('page', 1) - 1) * 9);
}
return view('dashboard')
            ->with('social_networks', $social_networks)
            ->with('i', ($request->input('page', 1) - 1) * 9);

我的路线:

代码语言:javascript
复制
Route::resource('dashboard','DashboardController');

基本上,我需要的是,尝试并添加一个网址链接到每个按钮的产生。并且每个按钮链接将是不同的。

我需要为每个按钮添加一个属性。我们称它为data-url。我在其中放入了网络的URL,并且需要附加一个处理程序,该处理程序在单击按钮时触发,以便跟踪URL。

我想写一些附加到社交按钮的JavaScript。如下所示:

代码语言:javascript
复制
$(document).ready(function() { 
    $('.social-network').on('click', '.provider-btn', function( e ) { 
        $.ajax({ 
            'url': 'addconnection',
            'data': {
                network: this.data('network')
            },
            'dataType': 'json'
        }).done(function(json) { 
            if (json.status='ok') { 
                window.location = json.url; 
            } 
        });
    });
});

然后在服务器端,我需要一段代码来执行,并确保响应如下所示:

代码语言:javascript
复制
function handleAddConnection($network) { 
    $social_network = DB::table('social_networks')->where('name', $network)->first();
    $url = $social_network->apiUrl;
    $response = array('status' => 'ok', 'url' => $url); 
}
EN

回答 1

Stack Overflow用户

发布于 2017-05-22 14:58:28

同样的循环,假设您有一个主索引:

代码语言:javascript
复制
@foreach($social_networks as $social_network)
    <a href="{{ route('social_network.show', $social_network->id) }}" class="social-network-ajax"> {{ $social_network->displayName }} </a>
@endforeach

然后,您可以定义一个click处理程序,它将向服务器发送一个ajax请求:

代码语言:javascript
复制
$('body').on('click', '.social-network-ajax', function(e){
    e.preventDefault(); //stop the default link from opening

    var $this = $(this); //referencing


    $.ajax({
        method: 'GET',
        url: $this.prop('href')
    }).done(function(resp){
        console.log(resp);
    }); 
});

当然,相应地定义您的路线:

代码语言:javascript
复制
Route::get('social-network/{social_network}', 'SocialNetworkController@show')->name('social_network.show');

或者您希望将其发送到的任何控制器方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44106275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档