0

感谢您的光临,如果这个问题似乎很简单,我很抱歉,因为我对 php 有点陌生。我正在尝试做一个学校项目,我现在的问题是我似乎无法获得下拉列表的值。我一直在尝试在这里搜索每个论坛和一些类似的问题,但它们似乎只显示了我如何用数据库值填充下拉列表。

填充下拉菜单的代码正在运行,但记录所选值对我不起作用。

这是我的下拉菜单的 php 代码:

<div class="panel">
    <label class="panelname">Category:</label>
    <select name="category" class="signup_field">
        <option>Select One</option>
        <? // retrieve all the categories and add to the pull down menu
        $query = 'SELECT category_id, name FROM category ORDER BY name ASC';
        $request = mysqli_query($dbc, $query);
        while ($row = mysqli_fetch_array($request, MYSQLI_NUM)) {
            $cat_id = $row[0];
            echo "<option value=\"row[0]\"";
            //check for stickyness:
            if (isset($_POST['category']) && ($_POST['category'] == $row[0])) {
                echo ' selected="selected"';
                //$_POST[]
            } echo ">$row[1]</option>\n";
        }
        ?>
    </select>
    <? if (array_key_exists('category', $add_product_errors)) echo '<label class="error">' . $add_product_errors['category'] . '</label>'; ?>
</div>

这是我的验证代码的一部分:-

// Check for a form submission:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

// Check for a category:
if (!isset($_POST['category']) || !filter_var($_POST['category'], FILTER_VALIDATE_INT, array('min_range' => 1))) {
    $add_product_errors['category'] = 'Please select a category!';
} 
..... // other codes for validation (Eg: if (empty($add_product_errors)) { proceed to query} )

我不知道似乎是什么问题,但是 $_POST['category'] 中没有记录值供我保存到 MySQL 中,并且我不断收到 Please select a category 错误。

感谢大家的帮助。:)

4

3 回答 3

1

你的问题似乎是echo "<option value=\"row[0]\"";。你想用

echo "<option value=\"$row[0]\"";

echo "<option value=\"row[0]\"";row[0]只是在那里放一个字符串

于 2013-04-18T21:36:54.260 回答
0

谢谢,我似乎已经解决了问题..

我似乎已经删除了行 [0] 中的 ($) 行,以便正确读取它。只需将 $ 放在行 [0] 上:

echo "<option value=\"row[0]\"";
于 2013-04-18T21:57:09.917 回答
0

我曾经解决过这个问题......在你的情况下。

while ($row = mysqli_fetch_array($request, MYSQLI_NUM)) {
        $cat_id = $row[0];
        $str = null;
        if (isset($_POST['category']) && ($_POST['category'] == $row[0])) {
                $str = 'selected="selected"';
        }
        echo '<option value="'.$row[0].'" '.$str.'>'.$row[1].'</option>';
    }   
于 2015-04-29T04:53:56.887 回答