如何从MySQL表中动态获取select标记的值

时间:2013-04-18 21:30:58

标签: php html mysql

感谢您的回答,如果这个问题看起来很简单,我很抱歉,因为我对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中,我一直收到请选择类别错误。

谢谢大家的帮助。 :)

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

谢谢,我似乎已经解决了这个问题。

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

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

答案 2 :(得分: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>';
    }