PHP实现下拉菜单onchange提交表单后保留从数据库读取的选中值
实现下拉菜单提交后保留选中值的修改方案
核心思路
表单提交后,从请求参数中获取已选中的医生ID,在生成<option>标签时,对匹配ID的选项添加selected属性即可实现默认选中效果。
具体代码修改
第一步:修改PHP的displayDoctors方法
给方法增加一个接收当前选中ID的参数,生成option时做匹配判断:
public function displayDoctors($selectedDocID = ''){ $sql = "SELECT * FROM doctor"; $result = @mysqli_query($this->conn, $sql); while($data = mysqli_fetch_array($result)) { // 匹配到选中ID则加selected属性 $selected = ($data['docID'] == $selectedDocID) ? "selected" : ""; echo "<option value='". $data['docID'] ."' ".$selected.">" .$data['FirstName']." ".$data['LastName'] ."</option>"; } }
第二步:修改HTML中方法调用逻辑
调用方法时传入提交后的医生ID(如果表单用GET提交,把下方$_POST换成$_GET即可):
<select id="Doctor" name="Doctor" onchange="this.form.submit();"> <?php // 先判断参数是否存在,避免首次加载时报错 $currentDoctor = isset($_POST['Doctor']) ? $_POST['Doctor'] : ''; $Store->displayDoctors($currentDoctor); ?> </select>
内容的提问来源于stack exchange,提问作者yukang
相关产品推荐
相关产品推荐

