在 Laravel PHP 中使用 javascript 变量

Use javascript variable in Laravel PHP

您好,我正在尝试使用 Laravel

开发一个 学生注册应用程序

一个学生可以在 许多 classes 中注册,每个 class 都有一个 name 和 level 所以在注册页面中,我想显示一个带有 类 名称的复选框,然后当我单击一个 Classe 时,应用程序会在同一页面中向我显示一组带有级别的 cheakes class 例如,如果我单击在英语上,它显示 Beginin , intermediate ...

所以在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 值来显示此 class

的级别

当浏览器向服务器发送此页面的请求时,php 制作您所有的 html 和 javascript 代码并将它们发送到浏览器和您的 javascript 代码运行 在浏览器上,所以你不能在同一个地方(例如在服务器上)使用 php 和 javascript。

我认为您可能对此采取了一种奇怪的方法。

在您的控制器中,在将任何变量传递给您的视图之前,您需要组织您的 classes 和您想要 return 的 levels。如果您已经建立了模型关系,那么您甚至可以这样做:

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 除非你有足够的 类 and/pr 级别,否则它会导致加载问题。