dsa88885555 2017-04-06 16:06
浏览 310

Laravel 5.4将变量从控制器传递给js脚本

Hi it is possible pass variable from controller to JS script. I must do change color event when user join to event.

I need pass variable $colorrr to my js becouse i use fullcalendar there is option eventColor: and i want send there variable $colorrr from controller. Now only i do checking if event exist in pivot table. And its working, my problem is i dont know how pass variable to option eventColor

Controller:

public function index()
    { 
       $eventscolo=DB::table('save_events')->select('events_id')->get();
       $eventsss=DB::table('events')->select('id','title')->get(); 
             
        foreach ($eventsss as $eventss) 
        {
             
            if(DB::table('save_events')->where('events_id','=',$eventss->id)->exists())
            {
                    
                  $colorrr = 'grey';
                    
            }
            else
                { 
                    if ($eventss->title=="Wydzial 1") 
                        {
                            
                           $colorrr = 'red';
                            
                        }
                            elseif($eventss->title == "Wydzial 2")
                            {
                               
                             $colorrr = 'blue';
                               
                            }
                            elseif ($eventss->title == "Wydzial 3") 
                            {
                               
                             $colorrr = 'green';
                               
                            }
                            elseif ($eventss->title == "Wydzial 4") 
                            {
                                
                               $colorrr = 'yellow';
                                
                            }
                } 

        }
      return view('home',['eventscolo'=>$eventscolo,'eventsss'=>$eventsss,'colorrr'=>$colorrr]);

JS script:

<script src="{{ asset('js/fullcalendar') }}/fullcalendar.js"></script>
<script src="{{ asset('js/bootstrap.js') }}"></script>
<script type="text/javascript">

  $(document).ready(function() {
    
    var base_url = '{{ url('/') }}';
    
      
    
    $('#bootstrapModalFullCalendar').fullCalendar({
      weekends: true,
      header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek'
      },
       eventClick: function(event, jsEvent, view) {
          $('#modalTitle').html(event.title);
          $('#modalBody').html(event.name);
          $('#eventUrl').attr('href','/home/zapis/'+event.id);
          $("#startTime").html(moment(event.start).format('HH:mm '));
          if (event.end) $("#endTime").html(moment(event.end).format('HH:mm '));
          else $("#endTime").html('');              
          $('#fullCalModal').modal();
          return false;
        },
      
      eventLimit: true, // allow "more" link when too many events
      FirstDay: 1,
              contentheight : 650,
              editable : true,
              allDay : false,
              aspectRatio : 2,
              slotLabelFormat : 'HH:mm:ss',
              timeFormat : 'HH:mm',
              displayEventEnd : true,
              events: {
        url: base_url + '/api',
        error: function() {
          alert("cannot load json");
        }
      },
       eventColor: 'colorrr',
    
      
    });
  });
</script>

</div>
  • 写回答

1条回答 默认 最新

  • dongxinche1264 2017-04-06 16:14
    关注

    Controller (Pass value like following to your view)

    //..........................
    //............................
    $data['myVal'] = "abc";
    return view('myViewPage',['data'=>$data]);
    

    Blade-myViewPage(JS)

    <script>
        //Global variable on you blade
        var url = "{{url('/manufacturers-json')}}";
        var custom_val = "{{$data['myVal']}}"; //What ever you are getting from controller ($colorr)
    </script>
    

    and then you can use this JS variable into your JS. I am doing this way using angularJS. If in your case the above will not work then try creating an input field.

    <input type="hidden" value="<?php echo $colorrr; ?>" id="my_color" />
    

    Where $colorrr (or what ever you are passing from your controller to the view, make sure this variable contains value.
    and in your JS.

    var color = $("#my_color").val();
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题