求助:选择下拉列表时如何为其他文本框设置值?
问题分析与解决方案
你当前的写法存在一个核心问题:PHP是服务器端渲染语言,页面加载时只会把<?php echo $data['xxx']; ?>渲染成固定值,导致所有<option>对应的onchange参数都是同一个$data的值——不管你选哪个选项,传入setData的参数都不会变化,这显然不是你想要的联动效果。
下面是正确的实现思路和代码:
步骤1:重构HTML下拉框结构
把每个选项对应的岗位名称、津贴值等数据,存在<option>的自定义data-*属性中(这是HTML5标准特性,兼容性拉满):
<select id="nik" name="nik" class="select-select2" style="width: 100%;" onchange="setData(this)"> <!-- 假设你用PHP循环生成选项,替换成你的实际数据循环逻辑 --> <?php foreach ($yourDataList as $data): ?> <option value="<?php echo $data['nik']; ?>" data-nama-jabatan="<?php echo htmlspecialchars($data['nama_jabatan'], ENT_QUOTES); ?>" data-nilai-tunjangan-p="<?php echo htmlspecialchars($data['nilai_tunjangan_p'], ENT_QUOTES); ?>" data-nilai-tunjangan-j="<?php echo htmlspecialchars($data['nilai_tunjangan_j'], ENT_QUOTES); ?>" > <?php echo $data['nik']; <!-- 这里显示下拉选项的文本,可根据需求改成岗位名称等 --> ?> </option> <?php endforeach; ?> </select> <!-- 目标赋值输入框 --> <input type="text" id="nama_jabatan" name="nama_jabatan"> <input type="text" id="nilai_tunjangan_p" name="nilai_tunjangan_p"> <input type="text" id="nilai_tunjangan_j" name="nilai_tunjangan_j">
注:用
htmlspecialchars()处理数据是为了避免特殊字符(比如引号、换行)破坏HTML结构,建议养成习惯。
步骤2:修改JavaScript的setData函数
现在让函数接收下拉框元素本身,通过它获取当前选中选项的data属性值,再赋值给对应输入框:
function setData(selectElement) { // 获取当前选中的<option>元素 const selectedOpt = selectElement.options[selectElement.selectedIndex]; // 从data属性中提取对应值 const jabatan = selectedOpt.dataset.namaJabatan; const tunjanganP = selectedOpt.dataset.nilaiTunjanganP; const tunjanganJ = selectedOpt.dataset.nilaiTunjanganJ; // 赋值到输入框 $('#nama_jabatan').val(jabatan); $('#nilai_tunjangan_p').val(tunjanganP); $('#nilai_tunjangan_j').val(tunjanganJ); }
如果你习惯用jQuery简化代码,也可以改成这样:
function setData() { const selectedOpt = $('#nik option:selected'); $('#nama_jabatan').val(selectedOpt.data('nama-jabatan')); $('#nilai_tunjangan_p').val(selectedOpt.data('nilai-tunjangan-p')); $('#nilai_tunjangan_j').val(selectedOpt.data('nilai-tunjangan-j')); }
对应的HTML里onchange改成onchange="setData()"即可。
内容的提问来源于stack exchange,提问作者Rizal Fauza Syahputra
相关产品推荐
相关产品推荐

