2017-05-07 30 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在同一个地方(前。在服务器上)。