我有两个函数,它们都基于Mysqli输入创建了一个下拉菜单。
每个ifself都很好,但当我从不同的页面调用它们时,如下所示:
populerOevelserdropdown();
populerAntalreps();
只显示一个(第一个-第二个显示在View source中)
然而,如果我这样打电话:
populerOevelserdropdown();
populerOevelserdropdown();
populerAntalreps();
其中一个正确显示(当我查看源时,第三个仍然显示)
我确信这与标签(html、表单等)不匹配有关,但我似乎无法正确排列它们。。。
希望你们能帮忙-下面是两个功能:
require_once 'forbindtilDB.php';
function populerOevelserdropdown()
{
global $mysqliOOP;
$stmt = $mysqliOOP->prepare("SELECT DISTINCT primaer FROM oevelser ORDER BY primaer ASC");
?>
<html>
<body>
<form>
<select multiple>
<option value="0">Vælg ønskede øvelse(r)</option>
<?php
$stmt->execute();
$stmt->bind_result($primaereMuskelgruppe);
while ($stmt->fetch())
{
?>
<option value = "<?php echo $primaereMuskelgruppe;?>" >
<?php echo $primaereMuskelgruppe;
?>
</option>
<?php
}
$stmt->close();
}
function populerAntalreps()
{
global $mysqliOOP;
$stmt = $mysqliOOP->prepare("SELECT antalreps FROM antalreps ORDER BY antalreps ASC");
?>
<html>
<body>
<form>
<select>
<option value="0">Vælg ønskede antal gentagelser</option>
<?php
$stmt->execute();
$stmt->bind_result($antalreps);
while ($stmt->fetch())
{
?>
<option value = "<?php echo $antalreps;?>" >
<?php echo $antalreps;
?>
</option>
<?php
}
$stmt->close();
}
您没有正确关闭select
框。即使您使用的是未关闭的<html> <body> <form>
标记。像这个一样更改代码
<?php
function populerOevelserdropdown()
{
global $mysqliOOP;
$stmt = $mysqliOOP->prepare("SELECT DISTINCT primaer FROM oevelser ORDER BY primaer ASC");
?>
<select multiple>
<option value="0">Vælg ønskede øvelse(r)</option>
<?php
$stmt->execute();
$stmt->bind_result($primaereMuskelgruppe);
while ($stmt->fetch())
{
?>
<option value = "<?php echo $primaereMuskelgruppe;?>" >
<?php echo $primaereMuskelgruppe;
?>
</option>
<?php
}
$stmt->close();
?>
</select>
<?php
}
function populerAntalreps()
{
global $mysqliOOP;
$stmt = $mysqliOOP->prepare("SELECT antalreps FROM antalreps ORDER BY antalreps ASC");
?>
<select>
<option value="0">Vælg ønskede antal gentagelser</option>
<?php
$stmt->execute();
$stmt->bind_result($antalreps);
while ($stmt->fetch())
{
?>
<option value = "<?php echo $antalreps;?>" >
<?php echo $antalreps;
?>
</option>
<?php
}
$stmt->close();
?>
</select>
<?php } ?>
您应该从函数中提取html和body标记。。。像这样:
function populerOevelserdropdown()
{
global $mysqliOOP;
$stmt = $mysqliOOP->prepare("SELECT DISTINCT primaer FROM oevelser ORDER BY primaer ASC");
?>
<form>
<select multiple>
<option value="0">Vælg ønskede øvelse(r)</option>
<?php
$stmt->execute();
$stmt->bind_result($primaereMuskelgruppe);
while ($stmt->fetch())
{
?>
<option value = "<?php echo $primaereMuskelgruppe;?>" >
<?php echo $primaereMuskelgruppe;
?>
</option>
<?php
}
$stmt->close();
}
function populerAntalreps()
{
global $mysqliOOP;
$stmt = $mysqliOOP->prepare("SELECT antalreps FROM antalreps ORDER BY antalreps ASC");
?>
<html>
<body>
<form>
<select>
<option value="0">Vælg ønskede antal gentagelser</option>
<?php
$stmt->execute();
$stmt->bind_result($antalreps);
while ($stmt->fetch())
{
?>
<option value = "<?php echo $antalreps;?>" >
<?php echo $antalreps;
?>
</option>
<?php
}
$stmt->close();
}
?>
<html>
<body>
<?
populerOevelserdropdown();
populerOevelserdropdown();
populerAntalreps();
?>
</body>
</html>
我认为您错过了关闭选择框的机会。仅$stmt->close();
之后的</select>