我试图在html中创建一个表单,其中有一个组合框,其中列表是从我的SQL表中自动创建的。 我已经设法在我的班级中使用我的所有数据库语句制作一个集成的组合框。 但是如何在我的表单写入的另一个位置使用代码? 我还在学习php,这对我来说有点新鲜,所以我希望我的问题清楚明白。
代码:
class Lesdb
{
private static $lesdbInstantie = null;
private $dbh;
private function __construct($server, $username, $password, $database)
{
try
{
$this->dbh = new PDO("mysql:host=$server; dbname=$database", $username, $password);
//Bij error: exception opwerpen
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e)
{
die($e->getMessage());
}
}
public static function getLesdbInstantie($server, $username, $password, $database)
{
if(is_null(self::$lesdbInstantie))
{
self::$lesdbInstantie = new Lesdb($server, $username, $password, $database);
}
return self::$lesdbInstantie;
}
public function testComboBox()
{
echo "<h1> ComboBox functienamen </h1>";
$sql = "SELECT DISTINCT ftienaam FROM werknemers";
$stmt = $this->dbh->prepare($sql);
$stmt->execute();
$dropdown = "<select name='ftienaam'>";
foreach ($stmt as $row)
{
$dropdown .= "\r\n<option value='{$row['ftienaam']}'>{$row['ftienaam']}</option>";
}
$dropdown .= "\r\n</select>";
echo $dropdown;
}
}
?>
TestCombobox函数确实可以工作,但它应该被实现到我的表格中,而这个表格并不位于Lesdb类中。 例如:
function ShowForm()
{
?>
<form action="Index.php?actie=zoekInLijst" method=post>
<label for=ComboBox>ComboBox</label>
<select name = "the_name">
<option value="name">SQL STATEMENTS
</select>
</form>
<?php
}
所以我只想在我的表单中调用Lesdb类中的函数testComboBox。
答案 0 :(得分:0)
假设您的课程在一个文件中,请将其命名为Lesdb.php,并将您的表单放在另一个文件中,例如Form.php,然后你必须在表格文件中包含你的类(在顶部,在其他代码之前),
include_once "<PATH_TO_YOUR_FILE>\Lesdb.php";
创建您的类的实例(您要使用该实例的地方),
Lesdb db = new Lesdb();
并在ShowForm函数中使用该函数。
db->testComboBox();
答案 1 :(得分:0)
您必须创建该类的新实例。然后在那个实例上你必须加载函数。
不要忘记将该类包含在文件的顶部。
$theLesDB = new Lesdb();
$theLesDB->testComboBox();