-1
我在我的數據庫中有行,它有一個名爲value
的列。我正在創建一個頁面來將值更新爲aan(英文:on)或uit(英文:off)。PHP Select submit not working
但是,提交時,值列中有1
而不是aan
或uit
。
行的ID是1,所以這就是爲什麼有1但我不知道什麼是錯的,爲什麼它不提交aan
或uit
。
怎麼回事?
<?php
$stmt = $dbConnection->prepare('SELECT * FROM settings ORDER BY id ASC');
$stmt->execute();
$result = $stmt->get_result();
if(mysqli_num_rows($result) > 0) {
?>
<form method="POST" action="">
<table>
<tr>
<th>Naam</th>
<th>Laatst gewijzigd</th>
<th>Waarde</th>
</tr>
<?php
while ($row = $result->fetch_assoc()) {
if(isset($_POST["opslaan"])) {
$id = $row["id"];
$stmt = $dbConnection->prepare('UPDATE settings SET value = ? WHERE id = ?');
$stmt->bind_param('ss', $id, $id);
$stmt->execute();
}
?>
<tr>
<td><?php echo $row["code"]; ?></td>
<td><?php echo $row["updated"]; ?></td>
<td><select name="<?php echo $row["id"]; ?>"><option value="aan"<?php if($row["value"] == "aan") {echo ' selected';} ?>>Aan</option><option value="uit"<?php if($row["value"] == "uit") {echo ' selected';} ?>>Uit</option></select></td>
</tr>
<?php } ?>
</table>
<input type="submit" value="Opslaan" name="opslaan">
</form>
<?php
} else {
echo "<p>Er zijn nog geen instellingen.</p>";
}
}
?>
Ca你解釋多一點?我已經嘗試了您的建議,但似乎沒有奏效。 –
問題是您的選擇名稱是數字。在這種情況下:1.因此,我的建議是將名稱更改爲可以邏輯訪問的字符串。你可以添加一個var轉儲到PHP來查看你回來的東西。我會更新代碼並現在添加它... – Poiz
你現在可以試試看....我剛纔看到你沒有真正更新**值**正確的數據在你的數據庫列。你是***明確地將其設置爲1的rowID。這就是爲什麼。所以我現在添加了另一個變量$ aanUit,用於更新數據庫中的**值**列。現在應該沒問題。只要將您的** if(isset($ _ POST [「opslaan」])){**塊更改爲所提供的***並確保您選擇的名稱是「aan_uit」*** – Poiz