我是php的新手。我将尝试尽可能好地解释,如果您需要更多信息,请告诉我。
我有一个像这样的index.php:
<?php
require_once 'connection.php';
require 'vendor/autoload.php';
?>
<select onchange="this.options[this.selectedIndex].value && (window.location
= this.options[this.selectedIndex].value);">
<option value="">Velg campus</option>
<option value="showSchool.php?id=1">School 1</option>
<option value="showSchool.php?id=2">School 2</option>
<option value="showSchool.php?id=3">School 3</option>
</select>
我有一个班,School.php:
<?php
use Illuminate\Database\Eloquent\Model;
require_once 'vendor/autoload.php';
class School extends Model {
protected $fillable = [ 'id', 'name', 'adress', 'picture'];
}
我有一个像这样的showSchool.php:
<?php
include 'connection.php';
$school = School::find($_GET['id']);
?>
<h1 class="name"><?= $school['name'] ?></h1>
<p class="adress"><?= $school['adress'] ?></p>
<img src="<?= $school['picture'] ?>" height="200">
我正在使用Eloquent库进行SQL连接,它位于connection.php:
中 <?php
use Illuminate\Database\Capsule\Manager as Capsule;
require_once 'vendor/autoload.php';
$capsule = new Capsule();
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'port' => 3305,
'database' => 'school',
'username' => 'root',
'password' => 'root',
'collation' => 'latin1_swedish_ci'
]);
$capsule->bootEloquent();
总而言之,用语言来总结我所拥有的东西:
我完全不知道怎么做,但我真的想要实现的是:
学校信息(显示在showSchool.php中)应显示在与下拉菜单下拉菜单相同的页面上,换句话说也可以显示在index.php。
此外,在下拉菜单中,您可以看到我将值分配给“showSchool.php?id = 1”。有没有其他方法来处理这个问题,例如,如果将新行(学校)添加到数据库,下拉菜单将始终具有正确的选项?或者是手动更新选项的最简单方法?
我认为最后一个问题可能与第一个问题有关,因为在同一页面上显示学校信息可能会改变我的下拉菜单的整个结构。
好的,我想我已经解释得很好了。
我很感激我得到的任何答案! 谢谢!
答案 0 :(得分:0)
您对该课程的实例化与School.php(Skole vs. School)中定义的课程名称不匹配。
使用查询将您的硬编码学校链接替换为您的学校课程。它应查询您的数据库并返回所有学校ID和名称,例如构建一个现在指向index.php页面的动态集。
$schoolList = School::all();
$links = '';
foreach($schoolList as $schoolID)
{
$links .= '<option value="index.php?id=' . $schoolID['id'] . '">' . $schoolID['name'] . '</option>'.PHP_EOL;
}
?>
<select onchange="this.options[this.selectedIndex].value && (window.location= this.options[this.selectedIndex].value);">
<option value="">Velg campus</option>
<? echo $links; ?>
</select>
<?
//Move your showSchool.php code into an if block on index.php
if(isset($_GET['id']))
{
include 'connection.php';
$school = School::find($_GET['id']);
?>
<h1 class="name"><?= $school['name'] ?></h1>
<p class="adress"><?= $school['adress'] ?></p>
<img src="<?= $school['picture'] ?>" height="200">
<?
}
?>