【问题标题】:How to show Laravel retrieved results from the DB in a Javascript code如何在 Javascript 代码中显示 Laravel 从数据库中检索到的结果
【发布时间】:2021-11-07 12:06:33
【问题描述】:

我正在使用 Laravel 5.8,我想制作一个弹出系统,以便管理员可以添加自定义图像和自定义文本,然后在刀片上,必须根据该信息显示一个弹出窗口。

这里是popups的表结构:

1   id Primary  bigint(20)  
2   datep       varchar(191)    
3   title       varchar(191)    
4   linkp       varchar(191)    
5   text        varchar(191)    
6   image_path  varchar(191)    
7   created_at  timestamp   
8   updated_at  timestamp

这是弹出窗口的 Javascript 部分:

  <script>
    $(document).ready(function(){
            let popup_shown = false;
            let cookies = document.cookie.split('; ');
            for( let i=0; i<cookies.length; i++ ){
                cookie = cookies[i].split('=');
                if( cookie[0] == 'oly12_reg_ext2_popup_shown' )
                    popup_shown = true;
            }
            if( !popup_shown ){
                Swal.fire({
                    html: '<a href="#"><img style="width: 100%;" src="{{ URL::to('/') }}/popup.jpg"></a>',
                    showConfirmButton: false
                });
                document.cookie = "oly12_reg_ext2_popup_shown=1; path=/";
            }
        });
   </script>

但现在的问题是我不知道如何将 Laravel 和 Javascript 混合在一起以显示弹出消息。

例如,它应该看起来像这样:

@if(count($popups)>0)
    $(document).ready(function(){
        let popup_shown = false;
        let cookies = document.cookie.split('; ');
        for( let i=0; i<cookies.length; i++ ){
           cookie = cookies[i].split('=');
           if( cookie[0] == 'oly12_reg_ext2_popup_shown' )
              popup_shown = true;  
        }
    if( !popup_shown ){
        @foreach($popups as $popup)
        Swal.fire({ 
               html: '<a href="{{ $popup->linkp }}"><img style="width: 100%;" src="{{ URL::to($popup->image_path) }}"></a>',
        @endforeach
@endif

但这显然是错误的。

所以问题是,我如何在 Javascript 代码中显示 Laravel 从数据库中检索到的结果?

【问题讨论】:

    标签: javascript php laravel popup sweetalert


    【解决方案1】:

    在控制器内部,您可以将弹出数据传递给变量,然后像这样将其传递给视图,

    在控制器内部;

    $output = "";
    $popups = PopUp::all();
    if($popups->count() > 0)
    { 
    foreach($popups as $popup)
    { 
    $output .=' <a href=" '.$popup->linkp.' "><img src=" '. URL::to($popup->image_path).' " style="width: 100%;"></a>';
    }
    json_encode($output)
    

    然后在你的刀片视图 javascript 中,

    @section('scripts')
    <script>
    $(document).ready(function(){
     let popup_shown = false;
     let cookies = document.cookie.split('; ');
     for( let i=0; i<cookies.length; i++ ){ 
        cookie = cookies[i].split('='); 
        if( cookie[0] == 'oly12_reg_ext2_popup_shown' )
             popup_shown = true; 
    } 
    
    if( !popup_shown ){
        var popup_data = '{{!! $output !!}}'
        Swal.fire({ html:popup_data });
    }
    
    </script>
    @endsection
    

    【讨论】:

      猜你喜欢
      • 2020-09-29
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 2019-04-22
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      相关资源
      最近更新 更多