求教一个 php 问题

2014-12-28 20:14:19 +08:00
 b7898585
要做一个报名页面,要求如下:

序号 姓名 性别 年龄
1 aaa 男 18
2 bbb 女 19
3 ccc 女 22
.................

行数不固定,可能1组,也可能很多组,怎样做到同时提交?
程序是php+mysql
2652 次点击
所在节点    程序员
8 条回复
raincious
2014-12-28 20:18:25 +08:00
你可以做一个固定同时提交多组数据的页面。

当提交一条结果时,执行INSERT以及一个VALUES,当提交多个时,添加多个VALUES就行了。
mchl
2014-12-28 21:28:20 +08:00
试试Transaction和foreach
jianghu52
2014-12-28 22:00:04 +08:00
sql的事务,多次保存,一次commit。
Tr0y
2014-12-28 22:03:17 +08:00
表单用多维
例如<input type="text" name="name[]" />

接收到数据用foreach迭代。生成insert sql,然后执行就行了。
doushiyinweini
2014-12-28 22:11:16 +08:00
楼上正解
lincanbin
2014-12-28 22:18:03 +08:00
这个主要是JavaScript,难点在于创建对应数量的DOM节点。
你只要在客户端生成指定数量的
<input type="text" name="Tag[]" value="" />
https://github.com/lincanbin/Carbon-Forum/blob/master/static/js/new.function.js#L172
在服务端直接用
$TagsArray = $_POST['Tag'];
就直接获得这多个同名文本框的数据数组了
https://github.com/lincanbin/Carbon-Forum/blob/master/new.php#L18
Kilerd
2014-12-28 23:50:50 +08:00
如果你前端录入信息都没问题,还会卡在录入mysql?
很好奇你前端是怎么做的。
mhycy
2014-12-29 00:07:06 +08:00
某些前端防火墙会拦截数组请求
建议最佳做法也是最合适安全的做法是利用JS生成表单,并且遍历产生JSON数据
然后把数据base64一次编码后传入后端,后端程序再解包入库
这是最稳妥的做法,避免了请求数据异常带来的数据不一致问题,也避免了某些奇葩防火墙的问题~

后端入库json_decode 以后用 foreach直接遍历insert就好了,为了维护方便包装一下写入代码做个类或者做个函数都行~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/157394

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX