Laravel(初学者) - 显示下拉列表中选定行的数据

时间:2016-08-16 16:46:13

标签: php laravel select laravel-5 dropdown

这是 Controller.php

public function dropdown($id)
  {

    $stations = Station::lists('station_name','id');
    return view('stations.show')->withStation($station);
    return view('stations.dropdown',compact('stations', 'selectedStation','selectedStation'));

  }

这是 view.php

{{ Form::select('station',$stations,null,['class' => 'form-control']) }} 
            <br>
<?php
        if(isset($_GET['submit'])){


            $selectedStation = $_GET['station'];
            echo $selectedStation;echo "<br>";
        }
        else
        {
          echo "not working";
        }
    ?>

相应的数据库表。      database image

这给了我一个下拉图,如下图所示。enter image description here

选择电台时,仅显示&#34; id&#34;选定的电台。如何检索所选工作站的其他列?

2 个答案:

答案 0 :(得分:0)

你可以解决这个问题的很多方法,我也做了一些假设。 你的清单(看起来似乎)只包含名称&amp; id。

我认为当您获得在下拉列表中选择的特定项目的信息时,您不想重新加载页面。

以下是我想到的前两个选项。

1。)AJAX - 使用jQuery这样的javascript框架和监视器change()进行选择,在更改时获取id并将其激活到Laravel中的另一条路径,该路由获取ID并返回更多信息在JSON中。然后,您可以使用JS随意向用户显示此内容。

2.。)预加载的JSON - 编写新的数据库查询,获取您想要的所有信息,并以JSON格式存储在某些<script>标记内。它不会被用户看到。然后,您可以使用jQuery或其他JS框架在change()

上再次获取该数据

第2部分会更快,如果你有100,000个记录,我会建议为perf。

道歉,如果我完全误解了这个问题,似乎你需要一个JS解决方案而不是Laravel / PHP解决方案。 (没有糟糕的用户体验)如果你没有更多的数据,你需要发布它和新请求从数据库中获取数据。

答案 1 :(得分:0)

要显示所有工作站的所有列,您可以执行以下操作。 请注意,这样做可以获取所有可能不需要的内容,并且可能有更好的方法可用于雄辩的模型类,具体取决于您要执行的操作。

<强>控制器

public function showTable()
{
    //Fetch all stations from the database
    $stations = Station::all();
    //Return fetched data to the view
    return view('stations.show', ['stations' => $stations]);
}

查看 - 站点/ view.blade.php

<ul>
@foreach ($stations as $station)
    <li>{{$station->station_name}} - {{$station->rainfall}}</li>
@endforeach
</ul>

有关雄辩模型类的更多信息和示例,您可以查看:https://laravel.com/docs/5.2/eloquent