【发布时间】:2017-03-03 16:22:58
【问题描述】:
我尝试了几种方法,但似乎不可能。剧情是这样的……
我有每个场地拥有的场地和设施的数据库。 IE。酒吧 1 供应啤酒和食物(等)。我希望能够从下拉列表中选择一个城市(简单一点,我有这个工作!),并且从选定的城市中只提供该城市实际可用的复选框选项,例如,如果在一个城市中是5家餐厅,都提供食物,一些提供啤酒,一些提供红酒,但没有提供白葡萄酒,选择城市后,我只想看到食物,啤酒和红酒的复选框(尽管理论上白葡萄酒是数据库上的一个选项)。这是场景,但使用的是酒吧和酒吧游戏。到目前为止,我有这段代码,它从城市下拉列表中获取输入:
<select name="publocation">
<option value="none">Where will you be playing...</option>
<?php
$servername = "*****";
$username = "*****";
$password = "*****";
$dbname = "*****";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
foreach($conn->query("SELECT distinct city from Establishments order by city") as $row) {
print "<option value=".$row['city'].">".$row['city']."</option>";
}
$chosencity = $row['city'];
$conn = null;
}
catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
</select>
到目前为止,一切都很好。
然后我想做的是选择可用的活动 - 有很多,但只是在这里以飞镖为例:
<?php
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
foreach($conn->query("SELECT * from Establishments where city like '".$chosencity."'") as $row) {
if ($row['darts'] = '1') {
print "<input type='checkbox' name='adddarts' value='yes'>Darts</input>";
}
}
$conn = null;
}
catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
我遇到的问题是,当然,这将打印飞镖 x 次,其中 x 是所选城市中有飞镖的地方的数量。第二个问题是如果有人从下拉列表中选择不同的城市,复选框保持不变并且不会更新 - 有没有办法在 PHP 中做到这一点?
提前致谢, 布雷特
【问题讨论】:
-
不清楚你在问什么;但
$row['darts'] = '1'是分配,而不是比较。 -
如果不清楚,请致歉。 Ideally, when a new city was selected, the available checkbox options would change to reflect the options that are available there.
标签: php mysql checkbox pdo drop-down-menu