0
我正在學習PHP(並且非常有趣),但是我碰到了一個CRUD應用程序中的問題,我似乎無法找到解決辦法。PHP PDO從記錄編輯表格中的大表填充下拉列表 - 從數據庫拉取結果
我需要在創建頁面上使用下拉菜單進行數據輸入。我也希望在更新頁面上具有相同的下拉列表,但當然這需要將該值設置爲在更新表單加載時已經存儲在記錄中的值。我手動編碼了一些較短的下拉菜單(見下文),但接下來我需要做的是2008年的記錄! (當輸入被輸入時它將被搜索)。
我已經看過關於數組等的多個職位,我可以得到下拉列表的價值,但無法弄清楚如何拉現有的價值。
相關的代碼如下所示(請溫柔關於編碼......我是新!):
<?php
require_once "../includes/header.php";
?>
<?php
if (isset($_POST['patient_id']) && isset($_POST['datadate'])
&& isset($_POST['bedspace']) && isset($_POST['episode_id'])) {
$sql = "UPDATE tbl_users SET patient_id = :patient_id,
datadate = :datadate, bedspace = :bedspace, isadmitday = :isadmitday, antimicrobial = :antimicrobial
WHERE episode_id = :episode_id";
$stmt = $PDO->prepare($sql);
$stmt->execute(array(
':patient_id' => $_POST['patient_id'],
':datadate' => $_POST['datadate'],
':bedspace' => $_POST['bedspace'],
':episode_id' => $_POST['episode_id'],
':isadmitday' => $_POST['isadmitday'],
':antimicrobial' => $_POST['antimicrobial']));
$_SESSION['success'] = '<div class="alert alert-success" role="alert"><strong>Record successfully updated</strong></div>';
header('Location: index.php') ;
return;
}
$stmt = $PDO->prepare("SELECT * FROM tbl_users where episode_id = :xyz");
$stmt->execute(array(":xyz" => $_GET['episode_id']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row === false) {
$_SESSION['error'] = '<div class="alert alert-danger" role="alert"> <strong>Unable to proceed - bad episode_id value</strong></div';
header('episode_id: index.php') ;
return;
}
$n = htmlentities($row['patient_id']);
$e = htmlentities($row['datadate']);
$l = htmlentities($row['bedspace']);
$i = htmlentities($row['isadmitday']);
$am = htmlentities($row['antimicrobial']);
$episode_id = htmlentities($row['episode_id']);
?>
<div class="container">
<div class="row">
<div class="row">
<div class="col-md-12">
<h2>Edit episode record</h2><br>
</div> <!-- /col-md-12 -->
</div> <!-- /row -->
</div> <!-- /row -->
<div class="row">
<form name="edit_record" id="edit_record" method="POST" action="">
<div class="form-group">
<label for="patient_id" control-label>Patient ID</label>
<input type="text" class="form-control" id="patient_id" name="patient_id" value="<?= $n ?>">
</div> <!-- /form-group -->
<div class="form-group">
<label for="datadate" control-label>Date</label>
<input type="text" class="form-control" id="datadate" name="datadate" value="<?= $e ?>">
</div> <!-- /form-group -->
<div class="form-group">
<label for="bedspace" control-label>Bedspace</label>
<select class="form-control" required="required" id="bedspace" name="bedspace" value="<?= $l ?>">
<option></option>
<option value="Side Ward 1" <?php echo $l == 'Side Ward 1'?'selected':'';?>>Side Ward 1</option>
<option value="Bed 1" <?php echo $l == 'Bed 1'?'selected':'';?>>Bed 1</option>
<option value="Bed 2" <?php echo $l == 'Bed 2'?'selected':'';?>>Bed 2</option>
<option value="Bed 3" <?php echo $l == 'Bed 3'?'selected':'';?>>Bed 3</option>
<option value="Bed 4" <?php echo $l == 'Bed 4'?'selected':'';?>>Bed 4</option>
<option value="Bed 5" <?php echo $l == 'Bed 5'?'selected':'';?>>Bed 5</option>
<option value="Side Ward 2" <?php echo $l == 'Side Ward 2'?'selected':'';?>>Side Ward 2</option>
<option value="Side Ward 3" <?php echo $l == 'Side Ward 3'?'selected':'';?>>Side Ward 3</option>
</select>
</div> <!-- /form-group -->
僅供參考,使用:'require_once __DIR__ 「/../包括/ header.php文件」;'它將總是工作。即'當前工作目錄'被設置爲'絕對路徑'並不重要。如果將代碼移動到共享主機,請記住這一技巧。 –
謝謝你。關於下拉問題的任何想法? – Andrew