我正在制作一个包含数据库信息的下拉菜单。它必须在我的下拉列表中获得不同的品牌,在选择品牌并提交搜索时,它将显示有关该品牌的信息。它从数据库中获得了正确的品牌,但提交后它只显示我的最后一个品牌。有人可以帮我...这是我的下拉菜单和搜索(提交)代码:
<div class="bandwielkolom">
<form action="index.php?lang=nl&p=<?php echo $_GET['p']; ?>#keuze" method="post">
<table class="bandentabel">
<tr>
<th colspan="2">Op merk zoeken<a name="band"></a></th>
</tr>
<tr>
<td>Merk:</td>
<td>
<select name="band_merk">
<option value="0">- Merk -</option>
<?php
$wielen = $wielclass->getMerkenWielen($website);
foreach($wielen as $wiel)
{
echo "\t\t\t\t\t\t\t\t\t\t\t<option value=\"".$wiel->merk_code."\"";
if(isset($_GET['search']) && $_GET['search'] == "band" && isset($_GET['wiel']) && $_GET['wiel'] == $wiel->merk_code || isset($_POST['band_submit']) && $_POST['band_merk'] == $wiel->merk_code) { echo " selected=\"selected\""; }
echo ">".$wiel->merk_naam."</option>\n";
}
?>
</select>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="band_submit" value="Zoek"/></td>
</tr>
</table>
</form>
</div>
这是我的班级:
类别:
<?php
class wielen extends connect {
private $wielenlijst;
public function getMerkenWielen($database) {
$sql = "SELECT * FROM ".$database."_wielen ORDER BY merk_nummer";
try {
$stmt = $this->db->prepare($sql);
$stmt->execute();
$this->wielenlijst = $stmt->fetchAll(PDO::FETCH_OBJ);
$stmt->closeCursor();
return $this->wielenlijst;
}
catch (Exception $e) {
die ($e->getMessage());
}
}
public function __construct($dbo) {
parent::__construct($dbo);
}
}
?>
这仅显示提交后的最后一个品牌:
<?php
if(isset($_POST['band_submit']))
echo $wiel->merk_naam;
?>
有人可以帮助我,因为我无法让它工作
也许重新审视它会有所帮助
thnx任何帮助
更新:
我现在得到了这个代码的和平,我将解释正在发生的事情和我想要的事情:
<div class="bandwielkolom">
<form action="index.php?lang=nl&p=<?php echo $_GET['p']; ?>#keuze" method="post">
<table class="bandentabel">
<tr>
<th colspan="2">Op merk zoeken<a name="band"></a></th>
</tr>
<tr>
<td>Merk:</td>
<td>
<select name="band_merk">
<option value="0">- Merk -</option>
<?php
$wielen = $wielclass->getMerkenWielen($website);
$get_wiel = isset($_GET['wiel']) ? $_GET['wiel'] : '';
$post_wiel = isset($_POST['band_merk']) ? $_POST['band_merk'] : '';
foreach($wielen as $wiel) {
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$selected = $post_wiel['wiel'] === $wiel->merk_code ? ' selected="selected"' : '' ;
}
else {
$selected = $get_wiel['wiel'] === $wiel->merk_code ? ' selected="selected"' : '' ;
}
echo '\t\t\t\t\t\t\t\t\t\t\t<option value="' . $wiel->merk_code . '"' . $selected . '>' . $wiel->merk_naam . '</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="band_submit" value="Zoek"/></td>
</tr>
</table>
</form>
</div>
<?php
if(isset($_POST['band_submit']) && $_POST['band_merk'] == $wiel->merk_code)
echo $wiel->merk_naam;
?>
代号:
if(isset($_POST['band_submit']) && $_POST['band_merk'] == $wiel->merk_code)
echo $wiel->merk_naam;
我从我的数据库中获得了一个包含四个选项的选择框,以便正常工作。这些选项中包含数据,如图片和文本。当我选择一个并按提交时,他必须显示所选选项的信息,并且应保持选中状态。
现在发生的事情是,当我选择一个选项并按提交时没有任何反应...按钮正在工作但我没有得到所选选项的任何输出,它不会保持选中状态。
做错了什么,但我无法弄清楚是什么
欢迎任何帮助:)
答案 0 :(得分:1)
您需要再次使用for循环列出所有内容。
foreach($wielen as $wiel)
{
echo $wiel->merk_naam;
}