我想在 php 中更新“用户配置文件”。下拉列表中一个值重复两次。例如,我从数据库中获取 language value='Punjabi' 但在下拉列表中还有一个名称为 'Punjabi' 的值。 问题很简单,我不想要重复值(value)。
<?php $result=mysqli_query($conn, "select * from profile where id=$firstPerson");
while($queryArray=mysqli_fetch_array($result)){ ?>
<select name="language" id="language" >
<option value='<?php echo $queryArray["language"];?> '> <?php echo $queryArray["language"]; ?></option>
//for example, the value from database is "Punjabi"
<option value="Hindi">Hindi</option>
<option value="Punjabi">Punjabi</option>
<option value="Urdu">Urdu</option>
</select>
<?php } ?>
当在下拉列表中选择数据库中的 value='Punjabi' 时,下拉列表不应显示已放在下拉列表中的 value='Punjabi'。 请记住:我的下拉 (html) 列表中有超过 1000 个值。
最佳答案
不是根据用户数据创建新选项,而是检查现有选项是否等于用户数据:
<select name="language" id="language" >
<option value="Punjabi" <?php if ($queryArray["language"]=="Punjabi"){echo 'selected="selected"'} ?>>Punjabi</option>
<option value="Hindi" <?php if ($queryArray["language"]=="Hindi"){echo 'selected="selected"'} ?>>Hindi</option>
<option value="Urdu" <?php if ($queryArray["language"]=="Urdu"){echo 'selected="selected"'} ?>>Urdu</option>
</select>
如果有大量选项并且您不想对这些条件进行硬编码,您可以使用 javascript on DOM ready 删除第二个选项:
$(document).ready(function(){
$('option[value="<?php echo $queryArray["language"] ?>"]').eq(1).remove();
})
关于javascript - 在php中更新时如何避免下拉列表中的值重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53994790/