PHP&;MySQLi-在下拉列表中两次显示所选值
我创建了我的个人资料页面,其中显示了MySQL中的所有数据。所有数据都正确地显示在表单和下拉列表中。但问题是,选择值在选项列表中显示了两次 以下是我的代码:PHP&;MySQLi-在下拉列表中两次显示所选值,php,html,mysqli,drop-down-menu,Php,Html,Mysqli,Drop Down Menu,我创建了我的个人资料页面,其中显示了MySQL中的所有数据。所有数据都正确地显示在表单和下拉列表中。但问题是,选择值在选项列表中显示了两次 以下是我的代码: <select class="form-control" name="country" id="country"> <option value="">Select Country <?php //Get country list from Country ma
<select class="form-control" name="country" id="country">
<option value="">Select Country
<?php
//Get country list from Country master
$qry = "select * from country_master";
//Execute query
$result = mysqli_query($conn, $qry);
//Assigned fetched array to $Country
while($country = mysqli_fetch_array($result))
{
echo "<option value='$country[1]'>$country[1]</option>";
//Compare User Country with country list. $row[4] is the country column in user table
if($row[4] == $country[1])
echo "<option value='$country[1]' selected='selected'>$country[1]</option>";
}
?>
</option>
</select>
选择国家
A-2-A提供了您所面临问题的正确答案
另外
您将所有循环选项嵌套在“选择国家”选项中。您应该删除
标记之前的最后一个
标记,并将其移动到“选择国家”之后,如下所示:
选择国家
您需要更改您的,而代码如下所示:-
while($country = mysqli_fetch_array($result)){
//Compare User Country with country list. $row[4] is the country column in user table
if($row[4] == $country[1]){
echo "<option value='$country[1]' selected='selected'>$country[1]</option>";
}else{
echo "<option value='$country[1]'>$country[1]</option>";
}
}
while($country=mysqli\u fetch\u数组($result)){
//将用户国家/地区与国家/地区列表进行比较。$行[4]是用户表中的国家/地区列
如果($row[4]==$country[1]){
回声“$country[1]”;
}否则{
回声“$country[1]”;
}
}
注意:在您的代码中,首先创建选项,然后选中条件,这就是为什么它会两次显示所选选项。这将解决您的问题:
<select class="form-control" name="country" id="country">
<option value="">Select Country
<?php
//Get country list from Country master
$qry = "select * from country_master";
//Execute query
$result = mysqli_query($conn, $qry);
//Assigned fetched array to $Country
while($country = mysqli_fetch_array($result))
{
echo "<option value='$country[1]'".($row[4] == $country[1] ? " selected" : "").">$country[1]</option>";
}
?>
</option>
选择国家
它应该这样设置:
<select class="form-control" name="country" id="country">
<option value="">Select Country
<?php
//Get country list from Country master
$qry = "select * from country_master";
//Execute query
$result = mysqli_query($conn, $qry);
//Assigned fetched array to $Country
while($country = mysqli_fetch_array($result))
{
//Compare User Country with country list. $row[4] is the country column in user table
if($row[4] == $country[1]){
echo "<option value='$country[1]' selected='selected'>$country[1]</option>";
}
else{
echo "<option value='$country[1]'>$country[1]</option>";
}
}
?>
</option>
</select>
选择国家
你有两个问题:
- 在选项中使用选项
- 其次,您只需要打印所选属性,而不是打印完整选项
示例:
<option value="">Select Country
</option>
<?php
//Get country list from Country master $qry = "select * from country_master";
//Execute query
$result = mysqli_query($conn, $qry);
//Assigned fetched array to $Country
while($country = mysqli_fetch_array($result)) {
if($row[4] == $country[1]) {
$selected = 'selected=""';
}
else{
$selected = "";
}
?>
<option <?php echo $selected;?> value='<?php echo $country[1];?>'>
<?php echo $country[1];?>
</option>
<?php
}
?>
选择国家/地区
bhavin仅在其他情况下需要loop@A-2-A是的,如果他这么做的话,他至少可以投我一票-u-不管选择什么答案,但至少这将是第一个正确的描述性答案。对不起A-2-A,这是错的。没问题,我也为我的坏话感到抱歉:)@A-2-A刚刚编辑了您的代码以提高可读性,我希望这样可以。:-)您的代码兄弟选项中的一个问题在选项chk我的答案中