日期:2014-05-17  浏览次数:20496 次

JS动态生成的每一行,都保存到数据库中,为啥我就能保存第一行的?













只有第一行的数据能插入, 其他后面生成的都不能保存到数据库?  SQL2008的

新手一枚。麻烦给讲解一下思路 ,或者告诉我哪里错了! 大恩不言谢
祝大家端午节快乐

------解决方案--------------------
毛线啊  你的HTML标签的Name是txtproname 

你在后台Request.Form 获取的时候用  proname 这是什么玩意?

还有如果有很多个Name相同的标签

Request.Form["XXX "],取到的是一个数组 。。。。
------解决方案--------------------
像这种情况,你考虑的因素其实有很多层面

首先,这种设计,你要明白,你是对一个集合列表的数据维护,而不是单纯的新加的一行,而你的保存,应该也包含对该列表的修改

如果是这样,你可以遍历该列表,然后拼接成可维护的集合列表,提交给后台更新入库

你的每行数据都应该有个唯一标石,比如数据ID,维护起来也方便
------解决方案--------------------
request.form["XX"]取的是页面中name属性为XX的input标签的值,比如你这里的“123”
当有多个标签都是name时,request.form["XX"]取到的就是分别取到他们的值,中间用逗号连接起来的字符串,如“123,123,123,1”。
所以你这里第一要把request.form["proname"]改成["txtproname"].
其次用js最好在生成的一行中将name属性的值后面跟上行号,如第一行txtproname1,第二行txtproname2。这样在后台取的时候也是动态加上行号 request.form["txtproname"+i],这样应该就能满足你需求了。
----
写了这么多发现你是用AJAX的,那request.form["proname"]是对的。
你应该将

中的数据参数改成
var dataArray=new Array();
dataArray.push(每一行要传的数据JS对象);
最后把这个 dataArray POST回去
后台这样取值:循环i -> request.form["dataArray[i][proname]"] ...

------解决方案--------------------
引用:
毛线啊  你的HTML标签的Name是txtproname 

你在后台Request.Form 获取的时候用  proname 这是什么玩意?

还有如果有很多个Name相同的标签

Request.Form["XXX "],取到的是一个数组 。。。。


取到的是逗号分开的字符串,然后你用split()函数转成数组。。。