2017-05-07 35 views
0

嗨即時試圖建立一個學生註冊申請Laravel使用在Laravel PHP JavaScript變量

學生可以在許多類被註冊的每個類都有一個名和水平,使登記頁面我想顯示一個類名稱的cheackbox,然後當我點擊一個Classe應用程序顯示我在同一頁面的一個cheakbox與水平og cheakes類的例子,如果我點擊英語它顯示我初學者,中級.. 。

所以在create.blade.php(註冊),我有

@foreach ($mat as $m) 
{!!Form::label($m->matiere,$m->matiere.' :')!!} 
<input type="radio" name="matiere" onclick="cli();" value={!!$m->matiere!!}> 
@endforeach 

而且我創建一個腳本來幫助CLI()函數

function cli(){  
classname=document.querySelector('input[name="matiere"]:checked').value; 
alert(classname);} 

我的問題是我怎麼能拿在PHP classnam值以顯示此類的級別

回答

0

我想你可能會採取一種奇怪的方法來做到這一點。

在您的控制器中,在將任何變量傳遞到視圖之前,您需要組織要返回的classeslevels。如果你已經設置了模型中的關係,那麼你甚至可以做到這一點:

Controller

public function index() 
{ 
    $classes = MyClassModel::all(); 

    return view('create', [ 
     'mat' => $classes, 
    ]); 
} 

create.blade.php

@foreach ($mat as $m) 
    {!!Form::label($m->matiere,$m->matiere.' :')!!} 
    <input type="radio" name="matiere" value={!!$m->matiere!!}> 
    @foreach ($m->levels as $level) 
     // output each level for that class 
    @endforeach 
@endforeach 

然後,您可以使用JavaScript來顯示或隱藏在適當程度的不同。我會避免任何異步JavaScript,除非你有足夠的類和/ pr級別,它會導致加載問題。

+0

我在那個解決方案中想着這麼多 –

0

當瀏覽器向服務器發送此頁請求時,php會將所有html和javascript代碼發送給瀏覽器,並且您的JavaScript代碼在瀏覽器上運行,因此您無法使用PHP和JavaScript在同一個地方(前。在服務器上)。