简体   繁体   English

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

[英]Laravel 5.4 pass variable from controller to js script

Hi it is possible pass variable from controller to JS script. 嗨,可以将变量从控制器传递到JS脚本。 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. 我需要将变量$ colorrr传递给我的js,因为我使用fullcalendar并有一个eventColor选项:我想从控制器发送变量$ colorrr。 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 和它的工作,我的问题是我不知道如何将变量传递给选项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: JS脚本:

 <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> 

Controller (Pass value like following to your view) 控制器(将值传递给您的视图)

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

Blade-myViewPage(JS) 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. 然后您可以将此JS变量用于JS。 I am doing this way using angularJS. 我正在使用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. $colorrr (或从控制器传递到视图的任何位置)中,确保此变量包含值。
and in your JS. 并在您的JS中。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM