php - 使用下拉值更新 MySql DB

标签 php mysql forms

我的更新语句无法正常工作,我试图从数据库中提取数据,在其中填充“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/

相关文章:

php - 来自mysql结果的Json编码错误

php - PayPal 定期付款返回 url 问题

jquery - 电话和手机中jquery的设计模式保存在mysql中

php - 如何禁用php中的mysql功能

来自表的多个左连接的 Mysql 查询是 "from"表的子集未按预期工作

单击 "Submit"后重定向用户/更改文本的 Javascript 函数

javascript - 预览后 - 使用 AJAX 和 Fancybox 传递数据

php - 无法显示多张图像

php - 错误 : Your system is not ready to run Symfony projects

php - MySQL:以多个ID的形式传递单行ID