我正在尝试在我们的工作网站上建立一个页面。该页面允许您创建一个活动,然后将其存储在mysql数据库的表中。创建活动时,字段之一是“分配给执行人”。这使用一个使用数据列表选项的下拉菜单。数据列表是从数据库表中自动填充的。尽管代码可能不是最干净的,但效果很好。
<input list="assigned_to" name="assigned_to" placeholder="Please select..." required>
<datalist id="assigned_to">
<?php
$stmt = $conn->prepare("SELECT * FROM users WHERE idUsers = ?");
$stmt->bind_param("s", $userId);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
$uidUsersFromAdmin = $row["uidUsersFromAdmin"];
}
$stmt->close();
$stmt = $conn->prepare("SELECT * FROM users WHERE uidUsersFromAdmin = ?");
$stmt->bind_param("s", $uidUsersFromAdmin);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
$emailUsers = $row['emailUsers'];
echo "<option value=\"$emailUsers\"></br>";
}
$stmt->close();
?>
</datalist>
当我尝试更新表时出现了问题。如果用户希望更改活动中的某些内容,则update_activity页会引入相同的数据列表并完美地填充它,但是,如果某人没有更改“分配给”人员,则数据库表中的字段将替换为空白
请从更新页面查看以下代码
<input list="assigned_to" name="assigned_to" placeholder="<?php echo $assigned_to ;?>">
<datalist id="assigned_to">
<!-- This code brings in the 'operatives' from the users database -->
<?php
$stmt = $conn->prepare("SELECT * FROM users WHERE uidUsersFromAdmin = ?");
$stmt->bind_param("s", $uidUsersFromAdmin);
$stmt->execute();
$result = $stmt->get_result();
while($row = mysqli_fetch_array($result)) {
$uidUsersFromAdmin = $row['uidUsers'];
echo "<option value=\"$uidUsersFromAdmin\">";
}
$stmt->close();
?>
</datalist>
我尝试更改
<input list="assigned_to" name="assigned_to" placeholder="<?php echo $assigned_to ;?>">
到
<input list="assigned_to" name="assigned_to" Value="<?php echo $assigned_to ;?>">
但这只是创建一个选项,而我尝试使用
echo "<option selected value=\"$assigned_to\">";
但是这也不起作用。非常感谢您的帮助