实现从产品页面跳转至查询表单时自动选中对应下拉选项
解决方案:自动选中跳转后的产品下拉选项
步骤1:修改产品页面的查询按钮链接
在每个产品页面的查询按钮跳转时,携带当前产品的ID作为URL参数。假设产品页面中当前产品ID存储在变量$product_id中,可按以下方式修改链接:
<!-- 链接式按钮 --> <a href="query-form.php?product_id=<?php echo $product_id; ?>" class="btn">查询</a> <!-- 表单提交式(可选) --> <form action="query-form.php" method="get"> <input type="hidden" name="product_id" value="<?php echo $product_id; ?>"> <button type="submit">查询</button> </form>
步骤2:修改查询表单页面的PHP代码
先获取URL传入的产品ID,再生成下拉选项时判断是否为当前需要选中的项,添加selected属性。同时修正原代码中的语法错误($, com_in应为$com_in):
<select class="form-control" name="model_name" required="" id="modals"> <option> Choose Model *</option> <?php // 获取并过滤传入的产品ID,避免非法参数 $selected_product_id = isset($_GET['product_id']) ? intval($_GET['product_id']) : 0; $fetch = $com_in->prepare("SELECT * FROM main_product_tbl WHERE type='1'"); $fetch->execute(); foreach ($fetch->fetchAll(PDO::FETCH_ASSOC) as $key) { // 判断当前产品是否为目标选中项 $selected_attr = ($key['product_id'] == $selected_product_id) ? 'selected' : ''; echo '<option value="' . $key['product_id'] . '" ' . $selected_attr . '>' . $key['model_name'] . '</option> '; } ?> </select>
补充说明
- 使用
intval()处理传入的product_id,是为了过滤非法字符串参数,同时降低SQL注入风险。 - 如果产品页面采用POST方式提交参数,只需将代码中的
$_GET替换为$_POST,并对应修改产品页表单的method="post"即可。
内容的提问来源于stack exchange,提问作者Anwer Hussain
相关产品推荐
相关产品推荐

