php 实现下拉框
实现基础下拉框
在HTML中创建一个基础下拉框,使用<select>标签配合<option>标签。PHP可用于动态生成选项:
<select name="example">
<?php
$options = ["Option 1", "Option 2", "Option 3"];
foreach ($options as $value) {
echo "<option value='$value'>$value</option>";
}
?>
</select>
从数据库动态加载选项
通过MySQL查询获取数据并填充下拉框:

<select name="users">
<?php
$conn = new mysqli("localhost", "username", "password", "dbname");
$result = $conn->query("SELECT id, name FROM users");
while ($row = $result->fetch_assoc()) {
echo "<option value='{$row['id']}'>{$row['name']}</option>";
}
$conn->close();
?>
</select>
处理表单提交
获取用户选择的下拉框值:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$selectedValue = $_POST['example'];
echo "Selected: " . htmlspecialchars($selectedValue);
}
设置默认选中项
通过条件判断标记selected属性:

<select name="color">
<option value="red" <?php echo (isset($_POST['color']) && $_POST['color'] == 'red') ? 'selected' : ''; ?>>Red</option>
<option value="blue" <?php echo (isset($_POST['color']) && $_POST['color'] == 'blue') ? 'selected' : ''; ?>>Blue</option>
</select>
多级联动下拉框
使用JavaScript配合PHP实现级联选择:
// 第一级下拉框
<select name="country" onchange="loadStates(this.value)">
<option value="">Select Country</option>
<?php /* 填充国家选项 */ ?>
</select>
// 第二级下拉框(通过AJAX动态加载)
<select name="state" id="state">
<option value="">Select State</option>
</select>
<script>
function loadStates(country) {
fetch('get_states.php?country=' + country)
.then(response => response.text())
.then(data => {
document.getElementById('state').innerHTML = data;
});
}
</script>
使用PHP框架实现
在Laravel中使用Blade模板:
<select name="role">
@foreach($roles as $role)
<option value="{{ $role->id }}">{{ $role->name }}</option>
@endforeach
</select>






