我的更新语句无法正常工作,我试图从数据库中提取数据,在其中填充“Y”或“N”下拉列表,提交时将值输入到数据库和页面中刷新。
到目前为止,我已经有了我的项目列表,每个项目都有正确填充的下拉列表,现在是我的提交无法工作。
<?php
$updatedFeatProd = $_POST['featuredProduct'];
var_dump($updatedFeatProd);
if ($_POST) {
foreach ($_POST['featuredProduct'] as $key => $val) {
$query = 'UPDATE tblProducts SET featuredProduct = ' . $updatedFeatProd . '
WHERE fldID = ' . $val;
$sql = dbQuery($query);
}
}
$sql = dbQuery('SELECT fldId, fldName, featuredProduct FROM tblProducts');
?>
<form method="post" action="#" name="featuredProd">
<table>
<tr><td><p>Product Name</p></td><td><p>Is a featured product?</p></td></tr>
<?php
$products = dbFetchAll($sql);
foreach ($products as $product) {
//var_dump($product['fldName']);
?>
<tr>
<td>
<p><?php echo $product['fldName']; ?></p>
</td>
<td>
<select name="featuredDropdown">;
<?php
if ($product['featuredProduct'] == 'Y') {
?>
<option value="<?php $product['fldId'] ?>"><?php echo $product['featuredProduct'] ?></option>
<option value="<?php $product['fldId'] ?>">N</option>
<?php
} else {
?>
<option value="<?php $product['fldId'] ?>"><?php echo $product['featuredProduct'] ?></option>
<option value="<?php $product['fldId'] ?>">Y</option>
<?php
}
?>
</select>
</td>
</tr>
<?php
}
?>
最佳答案
这里的演示没有多大意义。您有一个下拉列表,其中一个插槽中包含 ProductName,另一个插槽中包含“N”。
一旦用户为产品选择“N”,他们就不知道自己对什么说“不”,因为他们再也看不到他们选择“否”的产品名称。
提供 <label>
会更有意义。包含产品名称和旁边的“是/否”下拉列表,供他们选择。
但是,您的更新代码不起作用的原因是您调用了下拉菜单 featuredDropdown
<Select name="featuredDropdown">
并且您正在尝试处理名为 featuredProduct
的字段在更新代码中
foreach ($_POST['featuredProduct'] as $key => $val) {
您的下一个问题可能是您输出了多个 <Select name="featuredDropdown">
所以你需要将其放入一个数组中,如下所示:
<Select name="featuredDropdown[]">
然后你将得到一个 featuredDropdown
的数组在 $_POST 数组中。 $_POST['featuredDropdown'][]
关于php - 使用下拉值更新 MySql DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18999588/