2017-04-06 176 views
0

嗨,它可能從控制器傳遞給JS腳本的變量。當用戶加入事件時,我必須改變顏色事件。Laravel 5.4將變量從控制器傳遞給js腳本

我需要將變量$ colorrr傳遞給我的js因爲我使用fullcalendar有選項eventColor:我想從控制器發送變量$ colorrr。 現在只有我檢查數據透視表中是否存在事件。而它的工作,我的問題是我不知道如何傳遞變量來選擇eventColor

控制器:

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

+0

是你可以做到這一點,通過你的變量來查看和你的看法創建一個js變量,並把那個值 – webDev

+0

但我如何做eventColor:{{$ colorrr}}和它不工作 – Mariusz

+0

,我試圖var colorrr = {{$ colorrr}}然後eventColor:colorrr,仍然不工作 – Mariusz

回答

1

控制器(pass值以下像你的看法)

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

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

,然後你可以使用這個JS變量到您的JS。我正在用這種方式使用angularJS。 如果在你的情況下,上述將不起作用,然後嘗試創建一個輸入字段。

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

$colorrr(或您從控制器傳遞什麼都在看,請確保此變量包含值。
和您的JS。

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

我媽德喜歡你寫和改變所有事件爲紅色,它不好 – Mariusz

+0

好吧,你可以在你的刀片上打印你的varibale(視圖)。如果是,那麼創建一個類型爲hidden的輸入字段,並將值設置爲'{{$ colorrr}}'(無論您的變量是什麼),然後使用JQUERY – webDev

+0

使用輸入Filed的ID獲取該值。我在Chrome瀏覽器中查看源代碼,我看到了一些類似的內容。 Mariusz

相關問題