2017-04-06 58 views
0

laravel反應在我的控制器:可以在javascript

public function index(){ 
    $data = array(1,2,3,4,5); 
    return view('index')->with(['data' => $data,]); 
} 

我怎樣才能訪問$data在javascript裏面index.blade.php?

在我的JavaScript函數中,我嘗試了JSON.parse(data)。還試過this.responseData.data"this.responseData.data

全部給了我錯誤Uncaught TypeError: Cannot read property 'sales' of undefined

回答

0

當您在laravel返回與數據的視圖(刀片視圖),可以使用下面的方法訪問它:

控制器:

public function index(){ 
    $data = array(1,2,3,4,5); 
    return view('index')->with(['data' => $data,]); 
} 

查看:

<body> 
@foreach($data as $d) 
{{$d}}<br/> 
@endforeach 
</body> 

這會給你的輸出在瀏覽器中,像這樣:

1 
2 
3 
4 
5 

如果分配值到JavaScript中的觀點應該是:

<script> 
    var data = []; 
    @foreach($data as $d) 
    data.push({{$d}}) 
    @endforeach 
<script> 

現在變量數據是可以很容易地訪問數組在JS中。

+0

正如我所說的,我需要在javascript函數中獲取該數據,您的答案並不恰當。 – MASh

+0

@MASh你使用的是AJAX嗎? –

+0

不是現在,但可能會晚一些。 – MASh

0

首先我認爲值得澄清。 PHP是服務器端語言,而JavaScript是客戶端語言。考慮到這一點,您無法直接從JavaScript直接訪問PHP變量。

有,你可以訪問數據的方式:

  1. 在你的PHP寫是這樣的:<script> var data = $data </script>。然後你可以在javascript中訪問JS data變量。
  2. 獲取dataXMLHttpRequest(AKA AJAX)。在這種情況下,您需要從PHP中取消JSON