Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery laravel刷新页面并在插入记录后转到正确的选项卡_Jquery_Laravel_Tabs - Fatal编程技术网

Jquery laravel刷新页面并在插入记录后转到正确的选项卡

Jquery laravel刷新页面并在插入记录后转到正确的选项卡,jquery,laravel,tabs,Jquery,Laravel,Tabs,我有一个引导数据表在模态中。 当我点击这个数据表中的一个按钮时,一条新记录被插入数据库,模式自动关闭,但在父窗口中我看不到新记录。当我在成功ajax响应中放入location.reload时,记录是正常的,但是页面重新加载并转到活动选项卡(它是不正确的)。我尝试了location.hash='#tab2';但一切都没有改变 这是我的JS函数: function addMemberToLessonDirect(id) { console.log(id);

我有一个引导数据表在模态中。 当我点击这个数据表中的一个按钮时,一条新记录被插入数据库,模式自动关闭,但在父窗口中我看不到新记录。当我在成功ajax响应中放入location.reload时,记录是正常的,但是页面重新加载并转到活动选项卡(它是不正确的)。我尝试了location.hash='#tab2';但一切都没有改变

这是我的JS函数:

function addMemberToLessonDirect(id)
    {
        console.log(id);

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

        $.ajax({
            method: 'POST', // Type of response and matches what we said in the route
            url: '/admin/lessons/addMember/licenseMemberId', // This is the url we gave in the route
            data: {'licenseMemberId' : id},
            success: function(response){ // What to do if we succeed
                console.log(response);
                //location.hash = '#tab2';
                location.reload();
            }

        });

    }
该表由Yajra Datatables生成:

public function getMembersDirect()
{
    $members = DB::table('members')
        ->select(['license_member.id as id','nip','firstname','lastname', DB::raw('DATE_FORMAT(birthdate, "%d-%m-%Y") as birthdate'),'description'])
        ->join('license_member','members.id','license_member.member_id')
        ->join ('licenses','licenses.id','license_member.license_id')

        ->whereNull('members.deleted_at')
        ->orderBy('members.lastname','asc');


    return Datatables::of($members)
        ->addIndexColumn()
        ->addColumn('action', function ($member) {


            $clic="addMemberToLessonDirect($member->id)";
            $link='<a onclick="'.$clic.'" class="btn btn-info btn-xs"><i class="fa fa-arrow-up" title="Add to lesson"></i></a>';
            return $link;})->make(true);

}
公共函数getMembersDirect()
{
$members=DB::表('members')
->选择(['license_member.id as id'、'nip'、'firstname'、'lastname',DB::raw('DATE_格式(birthdate,“%d-%m-%Y”)作为birthdate')、'description'])
->加入('license\u member'、'members.id'、'license\u member.member\u id')
->加入('licenses'、'licenses.id'、'license\u member.license\u id')
->whereNull('members.deleted_at')
->orderBy('members.lastname','asc');
返回Datatables::of($members)
->addIndexColumn()
->addColumn('action',函数($member){
$clic=“addMemberToLessonDirect($member->id)”;
$link='1
  • {{csrf_field()}} {{{('lesson.update')} #{{{{('member.id')} {{{{('member.firstname')} @foreach($lesson->lesson许可证成员为$llm) {{$llm->licenseMember->member->id} {{$llm->licenseMember->member->firstname} {{$llm->licenseMember->member->lastname} {{csrf_field()}} {{method_field('DELETE')} @endforeach {{{('lesson.addMember')} {{{('member.list')} {{--@include('admin.lessons.lessons_members_direct')--}
    我刚刚尝试在我的一个单页应用程序上同时使用这两种应用程序,效果良好:

      // first change the url
      location.hash = '#tab2'; // or location.href = "#tab2"
      // then refresh
      location.reload();
    
    但问题是,由于第一个选项卡始终处于活动状态,因此应该更改

    为了在使用ajax时显示新记录,除非使用Vue或Angular等模型视图绑定框架,否则始终需要在ajax成功回调中手动追加新记录

    或者,如果重新加载页面,则活动选项卡应根据结果进行更改。 您可以使用jquery触发活动选项卡上的更改,如下所示:

    $('a[href="#tab2"]').trigger('click');
    

    我只是尝试在我的一个单页应用程序上同时使用这两种应用程序,效果很好:

      // first change the url
      location.hash = '#tab2'; // or location.href = "#tab2"
      // then refresh
      location.reload();
    
    但问题是,由于第一个选项卡始终处于活动状态,因此应该更改

    为了在使用ajax时显示新记录,除非使用Vue或Angular等模型视图绑定框架,否则始终需要在ajax成功回调中手动追加新记录

    或者,如果重新加载页面,则活动选项卡应根据结果进行更改。 您可以使用jquery触发活动选项卡上的更改,如下所示:

    $('a[href="#tab2"]').trigger('click');
    

    谢谢你的回答。我介绍了你的第二个解决方案,触发器$('a[href=“#tab2”]”)。触发器('click');只有在我不写location.reload()时才有效;,如果我重新加载页面,将转到第一个选项卡。如果我删除重新加载触发器,则模式不会关闭,父页面也不会重新加载内容。感谢您的回答。我使用了第二个解决方案,触发器$('a[href=“#tab2”]”)。触发器('click');只有在我不编写location.reload()时才有效,如果我重新加载,页面将转到第一个选项卡。如果我删除重新加载触发器,则模式不会关闭,父页面也不会重新加载内容。