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