【问题标题】:Can I select checkboxes based on input from a dropdown list in PHP/MySQL?我可以根据 PHP/MySQL 下拉列表中的输入选择复选框吗?
【发布时间】: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


【解决方案1】:

看看JavaScript jQuery AJAX。它允许调用同一来源的页面,在本例中为 PHP 文件。 然后,该文件可以使用 json_encode 返回 JSON 格式的响应。通过给 ajax 调用data: json,您可以将其读取到一个对象并使用 JavaScript/jQuery 更新您的列表

【讨论】:

  • 谢谢,这听起来像是我需要做的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
相关资源
最近更新 更多