我的网站包含一个向数据库添加数据的页面。现在,我正在处理该数据的输出,并在必要时对其进行编辑。
在我的添加页面上,我有一个包含多个选项的下拉列表。如果选中,则该值将转到数据库。现在我想扭转它。从数据库中选择值,并在下拉列表中显示该值,其值与添加页面上的值相同。但是,数据库中的值需要默认选择。
在我的代码中,我只尝试使用2个值,但如果此代码有效,则应该很容易添加更多值。
码
<?php
$A = "A";
$B = "B";
$query = mysqli_query($conn, "SELECT * FROM table WHERE id='$id'");
while ($record = mysqli_fetch_assoc($query))
{
echo "<table>";
echo "<tr>";
echo '<td><b>Type: </b>
<select name="type">
if ($record['type'] == "A"){
echo "<option selected value ="' . $A . '">A</option>";
echo "<option value="' . $B . '">B</option>";
} elseif ($record['type'] == "B"){
echo "<option selected value="' . $B . '">B</option>";
echo "<option value="' . $A . '">A</option>";
}
</select>
</td>';
echo "</tr>";
echo "</table>";
}
?>
我想我在某处遗漏了一些“”或“引号”。
答案 0 :(得分:0)
你的if是在一个字符串里面,因为你没有关闭回声,因此它们被处理为字符串而不是实际代码。
<?php
$A = "A";
$B = "B";
$query = mysqli_query($conn, "SELECT * FROM table WHERE id='$id'");
while ($record = mysqli_fetch_assoc($query))
{
echo "<table>";
echo "<tr>";
echo '<td><b>Type: </b>
<select name="type">';
// You were missing closing '; on the line above
if ($record['type'] == "A"){
echo "<option selected value ="' . $A . '">A</option>";
echo "<option value="' . $B . '">B</option>";
} elseif ($record['type'] == "B"){
echo "<option selected value="' . $B . '">B</option>";
echo "<option value="' . $A . '">A</option>";
}
// Dont forget to then open the echo again
echo ' </select>
</td>';
echo "</tr>";
echo "</table>";
}
?>
答案 1 :(得分:0)
您已使用一个echo
不要使用多个回显来显示一个字符串。
echo '<td><b>Type: </b>
<select name="type">'.
if ($record["type"] == "A"){.'
<option selected value ="' . $A . '">A</option>
<option value="' . $B . '">B</option>
.'} elseif ($record['type'] == "B"){.'
<option selected value="' . $B . '">B</option>
<option value="' . $A . '">A</option>.'
}.'
</select>
</td>';
其他方式是使用Concatenate和变量:
$A = "A";
$B = "B";
$query = mysqli_query($conn, "SELECT * FROM table WHERE id='$id'");
$tbl = '';
while ($record = mysqli_fetch_assoc($query))
{
echo "<table>";
echo "<tr>";
$tbl .= '<td><b>Type: </b>
<select name="type">';
if ($record["type"] == "A"){
$tbl .= '<option selected value ="' . $A . '">A</option>
<option value="' . $B . '">B</option>';
} elseif ($record['type'] == "B"){
$tbl .= '<option selected value="' . $B . '">B</option>
<option value="' . $A . '">A</option>';
}
$tbl .= '</select>
</td>';
echo $tbl;
echo "</tr>";
echo "</table>";
}