PHP设置页面刷新后的下拉值



表单输入刷新页面后,我在设置下拉列表的值时遇到问题。我可以获得该值,但无论我尝试什么,我都无法在页面刷新后设置下拉列表。我在网上也尝试了很多不同的想法。我已经尝试了JavaScript和PHP解决方案,我所能做的就是获取值,但不设置它。这是我迄今为止的代码,它返回下拉ID,我只需要知道如何使用它。我很感激任何帮助,谢谢!

<?php
$pdo = new PDO('mysql:host=localhost; dbname=db', 'root', 'password')'
$sql = "SELECT divid, division FROM divisions ORDER BY division ASC";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$divs = $stmt->fetchAll();
?>
<form method="post">
<select id="divi" name="divisions">
<?php foreach($divs as $div): ?>
<option value="<?= $div['divid'];?>"><?= $div['division']; ?></option>
<?php endforeach; ?>
</select>
<input type="submit" name="submit" value="Submit">
</form>
<?php
if(isset($_POST['submit'])){
if(!empty($_POST['divisions'])){
$selected = $_POST['divisions'];
echo 'Selected: " . $selected;
} else {
echo 'Select division.';
}
}
?>

我不太清楚你真正想要什么,但看起来你想选择默认值:

<select id="divi" name="divisions">
<?php foreach($divs as $div): ?>
<option <?php echo ("mycondition ex: 'id == 1'") ? "selected" : NULL ?> value="<?= $div['divid'];?>"><?= $div['division']; ?></option>
<?php endforeach; ?>
</select>

您只是缺少任何设置"selected="选择"选择字段的HTML中。

另外,你的代码很难阅读,所以我已经清理了一点循环。

<form method="post">
<?php
echo '<select id="divid" name="divid">';
foreach ($divs as $div) {
$selected = '';
if (isset ($_POST['divid']) && ($_POST['divid'] == $div['divid'])) {
$selected = 'selected="selected"';
}
echo '<option value="' . $div['divid'] . '" ' . $selected . '>' . $div['division'] . '</option>';
}
echo '</select>';

最新更新