版权声明:转载请注明出处。 https://blog.csdn.net/bagpiping/article/details/84190200
问题描述:
1、我想把一个JSP页面的表单里的数据,用AJAX异步提交给数据库。结果数据库不改变。
2、第二个问题,我举个例子在js中的代码:
<input type="sumbit" name="" id="china">
<script>
var div = document.getElementById("china");
alert(div);
</script>
但是在浏览器中弹出: [object HTMLInputElement]
3、看下面的JSP。我从数据库提取了movie这个JavaBean,作为list传过来。通过 jstl 标签遍历放到一个表格的 td 中。把某两个值用EL表达式的形式传给了JS函数。
<table id="table" style="margin-top:150px;margin-left:300px;">
<tr>
<td>ID</td>
<td>名字</td>
<td>租金</td>
<td>修改价格</td>
<td>提交</td>
</tr>
<c:forEach items="${requestScope.list }" var="movie">
<tr>
<td>${movie.id }</td>
<td id="platname">${movie.name }</td>
<td id="rent">${movie.rent }</td>
<td><input type="text" id="txtInput" value=""/></td>
<td><a href="javaScript:change('${movie.id }','${movie.name }')">确认修改</a></td>
</tr>
</c:forEach>
</table>
如果我在 js 中这么写:
var m = document.getElementById( "txtInput" );
alert(m);
alert(m.value);
alert(m.innerHTML);
结果是弹出框会浇灭你的心火。弹出框可能是白的,可能是弹出问题 2 ,也可能弹出框根本不吊你。。。
这个就是我的问题,前端 js 忘了。。。解决过程 3 。
解决过程:
1、先查看事务管理,我用的JDK8,框架是SpringBoot和Mybatis,数据库是MySQL,只要在service层的update、insert、delete等方法上加上注解 @Transactional 即可。因为springboot默认是在程序入口开启事务管理。
2、我给mybatis写了映射文件,要排除这里的错误,SQL语句语法等等。
3、我的问题就是 在 js函数没有获取到 表单中的数据。
- 首先是我用 foreach 把表格往下拉了一堆,然后每一行的表单id都一样,所以会出问题,我把原先的id和每行的特定“属性”拼接后解决了这个小问题,
id="txtInput_${movie.id }"
- 然后是在JS函数中成功获取某个HTML中节点的值,这个可能就是我的问题,说可能是因为我的小问题多!
- 获取节点试了很多方法,最后下面那张图片的“答主”给了我灵感(痛哭流涕),见解决问题5
4、AJAX用对,我采用了“古老的方法”:
- 创建XMLHTTPRequest
- 初始化
- 回调过程
- open
- send
5、获取HTML中某个节点
- 获取节点的属性
- 获取节点的值
- var m = document.getElementById("***").id;
- var value = document.getElementById(m).value;
我是看这位老兄的:加个id