我正在尝试创建一个使用 php 连接到 MySql 数据库的下拉列表。但它不起作用,我确信这是我需要做的一个简单的更改,但由于复杂的花哨 Bootstrap 形式,我无法弄清楚!
这是我的代码:
<form method="post" action="bookings.php" class="popup-form">
<fieldset>
<input id="email" name="email" type="text" class="form-control form-white" placeholder="Email">
<input id="firstname" name="firstname" type="text" class="form-control form-white" placeholder="Firstname">
<input id="lastname" name="lastname" type="text" class="form-control form-white" placeholder="Surname">
<div class="dropdown">
<button id="dLabel" for="retreatseleted" class="form-control form-white dropdown" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Select Retreat:
</button>
<ul for="retreatseleted" class="dropdown-menu animated fadeIn" role="menu" aria-labelledby="dLabel">
<li id="retreatseleted" name="retreatseleted" value="Clifftop Cottage" class="animated lightSpeedIn"><a href="#">Clifftop Cottage</a></li>
<li id="retreatseleted" name="retreatseleted" value="Cherry Trees" class="animated lightSpeedIn"><a href="#">Cherry Trees</a></li>
<li id="retreatseleted" name="retreatseleted" value="The Beach House" class="animated lightSpeedIn"><a href="#">The Beach House</a></li>
</ul>
</div>
<input id="fromdate" name="fromdate" type="date" class="form-control form-white" placeholder="From Date:">
<input id="todate" name="todate" type="date" class="form-control form-white" placeholder="To Date:">
<div class="checkbox-holder text-left">
<div class="checkbox">
<input type="checkbox" value="None" id="squaredOne" name="check" />
<label for="squaredOne"><span>I Agree to the <strong>Terms & Conditions</strong></span></label>
</div>
</div>
<button type="submit" value="Submit" class="btn btn-submit">Submit</button>
</fieldset>
</form>
我的 php 代码是:
ob_start();
session_start();
include("connectdb.php");
unset($_SESSION['error']);
if (!empty($_POST)
&& !empty($_POST['email'])
&& !empty($_POST['firstname'])
&& !empty($_POST['lastname'])
&& !empty($_POST['retreatselected'])
&& !empty($_POST['fromdate'])
&& !empty($_POST['todate'])) {
$email = $_POST['email'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$retreatselected = $_POST['retreatseleted'];
$fromdate = $_POST['fromdate'];
$todate = $_POST['todate'];
$query = "SELECT COUNT(*) AS count FROM bookings WHERE fromdate = '".$fromdate."' and retreatselected = '".$retreatselected."'";
$result = $db->query($query);
$data = $result->fetch_assoc();
if ($data['count'] > 0) {
$_SESSION['error'] = "Unfortunately this date has already been taken at $retreatselected.";
header("location: index.php");
} else {
$query = "INSERT INTO bookings (email, firstname, lastname, retreatselected, fromdate, todate)
VALUES ('".$email."','".$firstname."','".$lastname."','".$retreatselected."','".$fromdate."','".$todate."')";
"</p>";
$result = $db->query($query);
if ($result) {
$_SESSION['thankyou'] = "Thank you for booking $retreatselected. You will receive a confirmation email shortly.";
header("location: index.php");
} else {
echo "SQL Error: " . $db->error;
}
}
}
?>
当我取出下拉列表和“retreatselected”变量时,它工作得很好。我的数据库中有一个用于撤退选择的列,我希望用户选择的值出现在数据库中。
我很确定这是一个简单的 id=/name=/value= 更正,但我会疯狂地尝试每一种可能性!
非常感谢任何帮助:)
最佳答案
要保持任何 HTML 表单元素的 twitter bootstrap 样式,您必须为其指定“form-control”类。这适用于:
- 输入(文本)
- 输入(密码)
- 输入( radio )
- 输入(复选框)
- 选择
- 文本区域
因此,要遵循 Rigg 的答案,您应该使用:
Select Retreat:
<select name="retreatseleted" id="retreatseleted" class="form-control">
<option value="Clifftop Cottage">Clifftop Cottage</option>
<option value="Cherry Tree">Cherry Trees</option>
<option value="The Beach House">The Beach House</option>
</select>
希望这有帮助!
关于php - 使用 php 和 MySql 的 html 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36666572/