我有一個問題,<option selected>顯示兩次。
我正在使用標題表中的<select><option>資料填充
我想根據taos表中的資料顯示所選選項。
資料輸出顯示為: https ://i.stack.imgur.com/P7V4E.png 和 https://i.stack.imgur.com/nBFPh.png
<?php
$title_sql = "SELECT * FROM titles";
echo "<select class='form-control' name='title_id'>";
if ($result = mysqli_query($conn, $title_sql)) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$dbselected = $tao['title_id'];
foreach ($row as $option) {
if ($dbselected == $option) {
?>
<option selected value='$row[id]'><?php echo $row['title']; ?></option>
<?php
} else {
}
}
echo "<option value='$row[id]'>$row[title]</option>";
}
mysqli_free_result($result);
}
echo "</select>"; ?>
<?php
$title_sql = "SELECT * FROM titles";
echo "<select class='form-control' name='title_id'>";
if ($result = mysqli_query($conn, $title_sql)) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$dbselected = $tao['title_id'];
foreach ($row as $option) {
if ($dbselected == $option) {
?>
<option selected value='$row[id]'>
<?php echo $row['title']; ?>
</option>
<?php
} else {
}
}
echo "<option value='$row[id]'>$row[title]</option>";
}
mysqli_free_result($result);
}
echo "</select>"; ?>
任何援助將不勝感激。
uj5u.com熱心網友回復:
在foreach您將else部分留空的部分中,并顯示條件之外的所有選擇值
嘗試這個
<?php
$title_sql = "SELECT * FROM titles";
echo "<select class='form-control' name='title_id'>";
if ($result = mysqli_query($conn, $title_sql)) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$dbselected = $tao['title_id'];
foreach ($row as $option) {
if ($dbselected == $option) {
?>
<option selected value='$row[id]'><?php echo $row['title']; ?></option>
<?php
} else {
echo "<option value='$row[id]'>$row[title]</option>";
}
}
}
mysqli_free_result($result);
}
echo "</select>"; ?>
uj5u.com熱心網友回復:
當它等于值時,您的if陳述句正在輸出optionwith 。然后,您將無條件地輸出選項(不帶 )。如果您已經用selected$dbselectedselectedechoelse {ifselected
另外,您不想要foreach ($row as $option) {; 因為那是遍歷行的列,所以第二個echo將針對每一列重復。
另外,要保持一致。要么使用PHP,要么echo退出 PHP;不要以一種方式,然后另一種方式。
試試這種方式:
if ($result = mysqli_query($conn, $title_sql)) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$dbselected = $tao['title_id'];
## foreach ($row as $option) { ## TAKE THIS OUT
if ($dbselected == $option) {
?>
echo "<option selected value='{$row['id']}'>{$row['title']}</option>";
<?php
} else {
echo "<option value='{$row['id']}'>{$row['title']}</option>"; ## MOVED FROM BELOW
}
## } ## (End of foreach) TAKE THIS OUT
## echo "<option value='$row[id]'>$row[title]</option>"; ## MOVED THIS UP
}
我實際上會使用printf()而不是if-else:
printf('<OPTION %s value="%s">%s</OPTION>',
($dbselected == $row['id'] ? "selected" : ""),
$row['id'],
htmlspecialchars($row['title']));
uj5u.com熱心網友回復:
我編輯了您的問題,以向您展示更好的格式如何更容易找到您的問題。你的第三個 echo 陳述句首先被執行,它在你的 else 塊之外,應該在它里面
<?php
$title_sql = "SELECT * FROM titles";
echo "<select class='form-control' name='title_id'>";
if ($result = mysqli_query($conn, $title_sql)) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$dbselected = $tao['title_id'];
foreach ($row as $option) {
if ($dbselected == $option) {
?>
<option selected value='$row[id]'>
<?php echo $row['title']; ?>
</option>
<?php
} else {
}
}
echo "<option value='$row[id]'>$row[title]</option>";
}
mysqli_free_result($result);
}
echo "</select>"; ?>
uj5u.com熱心網友回復:
檢查此代碼
$sql = "SELECT * FROM titles";
$query = mysqli_query($con,$sql);
echo "<select class='form-control' name='title_id'>";
while($row = mysqli_fetch_assoc($query)) {
$dbselected = $tao['title_id'];
if ($dbselected == $row["title_id"]) {
echo "<option selected value='".$row[id]."'>".$row['title']."</option>";
} else {
echo "<option value='".$row[id]."'>".$row['title']."</option>";
}
echo "</select>";
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/507366.html
上一篇:在mysql中計算布林值
下一篇:組平SQL查詢結果
