【问题标题】:Use javascript variable in Laravel PHP在 Laravel PHP 中使用 javascript 变量
【发布时间】:2017-10-05 14:42:54
【问题描述】:

您好,我正在尝试使用 Laravel 开发一个学生注册应用程序

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

所以在 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 值以显示此类的级别

【问题讨论】:

    标签: javascript php laravel-5 laravel-blade


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      在您的控制器中,在您将任何变量传递给您的视图之前,您需要组织您的classes 和您想要返回的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,除非您有足够的类和/pr 级别会导致加载问题。

      【讨论】:

      • 我在想那个解决方案非常感谢你
      猜你喜欢
      • 2020-02-01
      • 2014-06-30
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 2013-01-19
      相关资源
      最近更新 更多