【问题标题】:How to pass php variables to a modal bootstrap 4如何将 php 变量传递给模式引导程序 4
【发布时间】:2020-08-19 11:05:59
【问题描述】:

我有一个 laravel 项目,其中我有一个递归,我想为每个元素创建不同的 html 元素。当我点击这些链接时,我想通过根据我点击的元素传递正确的变量来打开模式。

编辑:编辑 anteprima.blade.php:

<div class="rounded py-3 col-md-3 my-2 border mr-4">
<h5 class="font-weight-bold ellipsis"><i class="fas fas fa-list-ul mr-2"></i>{{ $playlist->nome }}</h5>

<small class="text-muted">Creata: {{ $playlist->created_at->diffForHumans() }}</small>

<div class="row px-3">
    <div>
        <button class="btn-sm btn-light border mr-2 open-modal my-2">Rinomina</button>
    </div>
    <div>
        <form method="post" action="{{ route('playlists.destroy', $playlist) }}">
            @csrf
            @method('delete')
            <button type="submit" class="btn-sm btn-secondary border my-2">Cancella</button>
        </form>
    </div>
</div>

<script type="text/javascript">
$( document ).ready(function() {

    $(document).on("click", ".open-modal", function () {
        var myvariable = $(this).data('myvariable');
        $('#rename_playlist').modal('show', myvariable);
        console.log(myvariable);

    });
});
</script>

有了代码,我现在的模态总是最后一个 $playlist,但我希望每个链接都有一个不同的 $playlist。

EDIT:编辑后的 ​​index.blade.php:

@extends('layouts.dashboard')

@section('content')

<div class="container-fluid">
    <div class="row">
        <div class="btn btn-warning rounded py-3 col-md-3 my-2 border mr-4" data-toggle='modal' data-target='#create_playlist'>
            <h5 class="font-weight-bold ellipsis"><a href="#"><i class="fas fa-plus-square mr-2"></i>Nuova Playlist</a></h5>
        </div>
@foreach ($playlists as $playlist)
    @include('anteprima')
@endforeach
    </div>
</div>

<div class="modal fade" id="rename_playlist" data-myvariable='{{ json_encode($playlist) }}' tabindex="-1" role="dialog" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">

        <div class="modal-content">
            <form method="post" action="{{ route('playlists.update', $playlist) }}">
                @csrf
                @method('patch')
                <div class="modal-header">
                    <h5 class="modal-title font-weight-bold" id="exampleModalCenterTitle">Rinomina {{ $playlist->nome }}</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>

                <div class="modal-body">
                    <input type="text" name="nome" value="{{ old('nome') }}" class="form-control" placeholder="Nome della playlist" required />
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-light" data-dismiss="modal">Cancella</button>
                    <button type="submit" class="btn btn-warning">Rinomina</button>
                </div>
            </form>
        </div>

    </div>
</div>

@endsection

更新:我使用递归中每个模式的 id 解决了它。

【问题讨论】:

  • 模态框在哪里?您能否向我们展示该代码,以便我们了解模态框试图显示的内容?
  • 我编辑了问题

标签: javascript php html laravel bootstrap-4


【解决方案1】:

您可以通过附加到data 属性来向模式发送额外的数据,如下所示:

<div class="btn btn-warning rounded py-3 col-md-3 my-2 border mr-4" data-toggle='modal' data-target='#create_playlist' data-myvariable="your_data_here">
{{content}}
<div>

那么在JS中,你可以这样做:

var myvariable = $(this).data('myvariable');

【讨论】:

  • 抱歉,我该如何使用您的解决方案与变量 $playlist?
  • 试试data-playlist='{{ json_encode($playlist) }}'和JS会一样
  • 我试过了: var playlist = $(this).data('$playlist');和 data-playlist='{{ json_encode($playlist) }}' 但它不起作用,它给我的结果和以前一样
  • @FridRic,不要在 JS 中使用 json_encode。刀片中的 json_encode 像这样:&lt;div class="btn btn-warning rounded py-3 col-md-3 my-2 border mr-4" data-toggle='modal' data-target='#create_playlist' data-myvariable='{{ json_encode($playlist) }}'&gt; {{content}} &lt;div&gt; 然后在 JS 中你得到它就像之前 var myvariable = $(this).data('myvariable');
  • 你能把你在 JS 的 console.log(myvariable) 中得到的东西贴在这里吗?
猜你喜欢
  • 2016-04-14
  • 2020-08-03
  • 2015-01-27
  • 2014-01-05
  • 2016-04-03
  • 2015-11-17
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
相关资源
最近更新 更多