【问题标题】:Laravel 5.1 pass data from view to modalLaravel 5.1将数据从视图传递到模态
【发布时间】:2016-04-01 02:13:04
【问题描述】:

如何将数据从刀片视图传递到模式对话框: 例如 : 我将 $user 从控制器传递给查看:

 $user = User::findOrFail($id);
 return view('user.show')->withUser($user);

接下来,我想通过这样的按钮将此数据 $user 传递给此视图中包含的模式:

@include('user.edit',$user);

我可以在模式中设置 $user 的值(例如:{!! $user->lastname !!})来编辑它们。

请帮帮我:)

【问题讨论】:

    标签: laravel-5.1 bootstrap-modal laravel-blade


    【解决方案1】:

    你可以使用bladeinclude()函数,它接受一个数组作为第二个参数:

    @include('user.edit', ['user' => $user])

    【讨论】:

    • 感谢您的回答,但我无法通过此代码将 $user 从视图重新发送到模态!这适用于定义的值,例如:@include(('user.edit', ['user' => 'value']) 但我想重新发送通过控制器传入视图的孔用户,并且在模态中我可以检索用户数据如下:{!! $user->username !!}
    • 你错了,我给你的代码是有效的,user.edit 视图将拥有所有 $user 数据
    • 对不起,你怎么能设置你的代码来发送 $user ?一旦你将 $user 传递给查看,你就可以检索它的字段,所以如果你尝试过,请设置一个代码来关注你:)
    • 我觉得我的理解有误,你真正要问的是:如何将数据从js传递到php?
    【解决方案2】:

    试试这个方法。我正在使用a 标签,但该解决方案应该也适用于您的按钮。

    <a
        href="#"
        data-target="yourModalId"
        data-toggle="modal"
        data-email="{{ $user->email }}"
        data-username="{{ $user->username }}"
     >
         Edit
    </a>
    

    jQuery 代码:

    $('#yourModalId').on('show', function(e) {
        var link     = e.relatedTarget(),
            modal    = $(this),
            username = link.data("username"),
            email    = link.data("email");
    
        modal.find("#email").val(email);
        modal.find("#username").val(username);
    });
    

    使用find 方法中传递的id 在模态窗口内创建输入字段。

    这会将输入字段中传递的值放在模式窗口内..

    【讨论】:

    • 太棒了!!!非常感谢您的帮助!但仍然存在一个问题:如何在将字段发送到控制器中的更新方法之前验证字段?因为在这里如果我按下提交按钮而不填写必填字段(应该得到错误并使用旧值保持模态),模态隐藏并且 $user 不会更新:/
    • 任何关于通过 Ajax 验证模式的教程?谢谢:)
    • 不确定,但 laracasts 应该可以帮助您找到您正在寻找的东西。或者只是谷歌:laravel ajax 验证
    • 这可能会给你一个想法...看看...laracasts.com/discuss/channels/general-discussion/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多