#php #html
#php #HTML
Вопрос:
у меня проблема с созданием текста по умолчанию в моем выборе. (список опций). Итак, мой вариант — хранение в базе данных. Нравится varchar
Test Option
Теперь, если я сделаю так в своем коде
<select name="category"> <option selected="selected"><?=$ad['category']?></option> <?php echo $options; ?> </select>
это работает, но тогда в моем списке будет два одинаковых значения.
мой полный код.
<?php
while($category = mysqli_fetch_array($q)):;
?>
<option> value="<?php echo $category[0];?>" <?php echo $category[1];?> </option>"
<?php endwhile; ?>
<select name="category"> <option selected="selected"><?=$ad['category']?></option> <?php echo $options; ?> </select>
<?php
Мой код для функции q и выбрать значение из базы данных (все значение из опции из базы данных)
$q2 = mysqli_query($con,$q22222);
$options = "";
while($row2 = mysqli_fetch_array($q2))
{
$options = $options."<option>$row2[1]</option>";
}
представьте, что объясняет ситуацию подробнее.
есть идеи, как это решить? любая помощь будет оценена по достоинству
Комментарии:
1. Поступает ли содержимое из списка выбора из двух разных источников? Являются
$q
ли и$q2
просто версиями одного и того же кода? Откуда берется выбранное значение, это пользовательский ввод?2. Ваш код, похоже, имеет довольно мало смысла для начала — сначала вы выводите пару
<option>…</option>
в цикле, а затем сразу после этого появляется<select>
?
Ответ №1:
Ну, реальная ситуация такова, что вы извлекаете массив, но хотите, чтобы опция не печаталась. Затем у вас сначала есть выбранная опция, то есть:
<?php $ad['category']; ?>
Тогда единственное, что вам нужно сделать, это то, что при извлечении массива, если параметр равен выбранному параметру, он не будет напечатан так:
$q2 = mysqli_query($con,$q22222);
$options = "";
while($row2 = mysqli_fetch_array($q2))
{
if($row2[1]!=$selected){
$options = $options."<option>$row2[1]</option>";
}
}
Ответ №2:
Если вы не хотите снова извлекать те же параметры из базы данных, вы можете использовать SELECT DISTINCT
оператор в своем запросе select.
А также обработайте ситуацию, когда опция не совпадает с выбранной вами опцией по умолчанию.
while($row2 = mysqli_fetch_array($q2))
{
if($row2[1] != $selected) $options = $options."<option>$row2[1]</option>";
}
Ответ №3:
<select >
<option value="1" <?php if ($Defaultselection == 1) echo "selected"; ?>>A</option>
<option value="2" <?php if ($Defaultselection == 2) echo "selected"; ?>>B</option>
<option value="3" <?php if ($Defaultselection == 3) echo "selected"; ?>>C</option>
<option value="4" <?php if ($Defaultselection == 4) echo "selected"; ?>>D</option>
</select>
Попробуйте