我通过 php 从数据库 mysql 获取已选择选项的值。标题和帖子值我从数据库中获得了当前 $id 的权利,但所选框的值未显示已选择的内容,请帮助我摆脱此错误
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "alurdu_db";
$id = $_GET['id'];
mysql_query('SET CHARACTER SET utf8');
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) { die("Connection failed: " .$conn->connect_error);
}
$sql = "SELECT * FROM news WHERE news_id='$id'";
$result = $conn->query($sql);
if ($result->num_rows >0) {
while($row = $result->fetch_assoc()) {
echo '<form action="up.php" method="post" enctype="multipart/form-data">';
echo '<div class="form-group">';
echo '<input type="text" class="form-control" name="news_title" value="' . $row["title"] . '">';
echo '<select dir="ltr" style="text-align: center;" class="form-control" name="news_cat">';
echo '<option value="National" if($row["news_cat"] == "National") echo "selected";>National</option>';
echo '<option value="International" if($row["news_cat"] == "International") echo "selected";>International</option>';
echo '</select>';
echo '</form>'
}
} else {
echo "Wrong Page";
}
$conn->close();
?>
最佳答案
您需要检查数据库存储的
值是否等于当前选项值
。如果相等,您需要添加 selected property
。
<option value="National" <?= ($row["news_cat"] == 'National')? "selected" : "" ?>>National</option>
更新 1:问题是单引号和双引号转义。只需像这样使用而不是回显表单。
while($row = $result->fetch_assoc()) {
?>
<form action="up.php" method="post" enctype="multipart/form-data">
<div class="form-group">
<div class="col-md-2 text-center">News Title
<input type="text" class="form-control" name="news_title" value="<?=$row["title"]?>">
</div>
<div class="col-md-8">
<div class="col-md-2 text-center">Category
<select dir="ltr" style="text-align: center;" class="form-control" name="news_cat" >
<option value="National" <?= ($row["news_cat"] == "National")? "selected" : "" ?> >National</option>
<option value="International" <?= ($row["news_cat"] == "International")? "selected" : "" ?> > International</option>
</select>
</div>
<div class="col-md-12">
<textarea class="form-control" rows="7" name="detail" ><?= $row["post"] ?></textarea>
</div>
<button type="submit" class="btn btn-default text-align" style="background-color:#3c8dbc;color:white">Update</button>
</div>
</div>
</form>
<?php
}
更新2:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "alurdu_db";
$id = $_GET['id'];
mysql_query('SET CHARACTER SET utf8');
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM news WHERE news_id='$id'";
$result = $conn->query($sql);
if ($result->num_rows >0) {
while($row = $result->fetch_assoc()) {
?>
<form action="up.php" method="post" enctype="multipart/form-data">
<div class="form-group">
<div class="col-md-2 text-center">News Title
<input type="text" class="form-control" name="news_title" value="<?=$row["title"]?>">
</div>
<div class="col-md-8">
<div class="col-md-2 text-center">Category
<select dir="ltr" style="text-align: center;" class="form-control" name="news_cat" >
<option value="National" <?= ($row["news_cat"] == "National")? "selected" : "" ?> >National</option>
<option value="International" <?= ($row["news_cat"] == "International")? "selected" : "" ?> > International</option>
</select>
</div>
<div class="col-md-12">
<textarea class="form-control" rows="7" name="detail" ><?= $row["post"] ?></textarea>
</div>
<button type="submit" class="btn btn-default text-align" style="background-color:#3c8dbc;color:white">Update</button>
</div>
</div>
</form>
<?php
}
} else {
echo "Wrong Page";
}
$conn->close();
?>
关于php - 如何选择从mysql以php形式获取的值来更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43509782/