0

我的更新语句无法正常工作,我试图从数据库中提取数据,在下拉列表中填充“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 
    }
?>
4

1 回答 1

0

这里的介绍没有多大意义。您有一个下拉菜单,其中一个插槽中包含 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'][]

于 2013-09-25T08:39:50.593 回答