如何为表格每行输入框动态加载 JSON 数据

轻婷酱_5672

轻婷酱_5672

2026-09-14

867人浏览

原创

如何为表格每行输入框动态加载 JSON 数据

本文介绍如何通过 ajax 请求根据用户输入的 id 自动填充同一行中的姓名和编号字段,使用 jquery 实现逐行数据绑定,并提供可运行的完整示例与关键注意事项。

本文介绍如何通过 ajax 请求根据用户输入的 id 自动填充同一行中的姓名和编号字段,使用 jquery 实现逐行数据绑定,并提供可运行的完整示例与关键注意事项。

在实际表单开发中,常需实现“输入 ID → 自动回填关联信息”的交互逻辑。例如:一个动态生成的学生成绩录入表,每行含 ID姓名编号 三个字段,当用户在某行 ID 输入框中填写学号后,系统应立即通过后端接口获取该学生的姓名与编号,并精准填入当前行对应的输入框中。

要实现这一目标,核心在于两点:

  1. 精准定位当前行上下文(避免所有行被同一份数据覆盖);
  2. 正确解析并映射 JSON 响应到对应字段

以下是一个结构清晰、生产可用的解决方案:

✅ 正确的 DOM 绑定与作用域处理

不要对所有 .id 全局监听 change 事件后盲目赋值,而应利用 jQuery 的事件委托与 DOM 遍历能力,在回调中锁定当前行:

jm-jsjkxyjs02-pzl-803
jm-jsjkxyjs02-pzl-803

查询全球任意城市的实时天气和未来天气预报

下载
$(document).on('change', '.id', function() {
  const $row = $(this).closest('tr'); // ✅ 精准获取当前行
  const sid = $(this).val().trim();

  if (!sid) return;

  $.ajax({
    method: 'GET',
    url: 'getData.php',
    data: { sid: sid },
    dataType: 'json',
    success: function(data) {
      if (data && typeof data === 'object' && data.name !== undefined) {
        // ✅ 使用 .find() 在当前行内查找目标输入框
        $row.find('.fname').val(data.name);
        $row.find('.num').val(data.num);
      } else {
        alert('未找到 ID 为 ' + sid + ' 的学生信息');
        $row.find('.fname, .num').val(''); // 清空无效匹配
      }
    },
    error: function() {
      alert('请求失败,请检查网络或服务器状态');
    }
  });
});

? 注意:使用 $(document).on('change', '.id', ...) 替代 $('.id').change(...) 可确保动态添加的行也生效(如通过“添加行”按钮新增)。

✅ 后端响应格式建议(getData.php

返回简洁、明确的扁平对象,而非数组(除非需批量查询):

<?php header('Content-Type: application/json; charset=utf-8');
$sid = $_GET['sid'] ?? '';

// 示例:从数据库查询(请务必使用 PDO/MySQLi 预处理防止 SQL 注入)
$data = [
  '1001' => ['name' => 'JACKS DONUTS', 'num' => '185'],
  '1002' => ['name' => 'ALICE SMITH',   'num' => '203'],
  '1003' => ['name' => 'BOB JOHNSON',   'num' => '197'],
];

echo json_encode($data[$sid] ?? []);
?>

✅ 完整 HTML 结构示例(含动态行支持)


ID 姓名 编号
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script> $('#add-row').click(function() { $('#student-table tbody').append(` <tr class="student-row"> <td><input type="text" class="id" name="id[]"> <td><input type="text" class="fname" name="fname[]"> <td><input type="text" class="num" name="num[]"> `); }); // 绑定事件(支持动态插入的行) $(document).on('change', '.id', function() { const $row = $(this).closest('tr'); const sid = $(this).val().trim(); if (!sid) return; $.get('getData.php', { sid: sid }) .done(function(data) { if (data && data.name !== undefined) { $row.find('.fname').val(data.name); $row.find('.num').val(data.num); } else { alert(`ID ${sid} 未匹配到数据`); $row.find('.fname, .num').val(''); } }) .fail(function() { alert('数据加载失败'); $row.find('.fname, .num').val(''); }); }); </script>

⚠️ 关键注意事项

  • 安全性getData.php 中必须对 $_GET['sid'] 进行严格校验(如正则过滤、白名单或数据库预处理),杜绝 SQL 注入;
  • 空值处理:用户删除 ID 后应清空同行字段,避免脏数据残留;
  • 防重复请求:可在 change 触发前加防抖(debounce)或禁用按钮,避免频繁请求;
  • 兼容性:若需支持旧版 IE,请避免使用 const/let 和箭头函数,或引入 Babel 编译。

通过以上结构化实现,你将获得一个健壮、可维护且易于扩展的动态表单数据填充方案——既满足初学者快速上手需求,也符合工程化开发规范。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

js json json处理 json数组

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2023.09.01

8984

6

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

5461

5

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

1995

5

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

2023.10.23

3388

4

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

2023.10.23

4054

6

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.03

3171

9

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.09

4497

8

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

3502

8

sprintf函数用法详解
sprintf函数用法详解

sprintf函数的用法:1、格式化字符串;2、指定输出宽度和精度;3、返回值。更多关于sprintf函数用法详解的内容,大家可以阅读下面的文章。

2023.11.27

11562

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 20.4万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 4.7万人学习