PHP 动态输入框获取输入值

2015-11-20 10:38:40 +08:00
 csensix

模仿微信公众号后台投票管理功能。
可以动态添加多个问题,每个问题下面默认有两个选项,也可动态添加多个。已经通过 JS 实现动态添加功能,但在 PHP 中无法获取到问题选项的值,单个选项的 html 如下

<input type="text" class="fyinput" name="options[][]" /><span class="red">*</span>
<input type="file" name="pic[][]" class="file" size="28" />
因为每个问题下面都有选项,如果 name="options[]" 这样就无法获知那个选项属于哪个问题。

请问如何正确设置 input 元素的 name 属性。

3700 次点击
所在节点    PHP
14 条回复
patosky
2015-11-20 10:41:57 +08:00
加个序号呗
csensix
2015-11-20 10:43:38 +08:00
@patosky 如果不加序号,是不是没有办法获取呢?
csensix
2015-11-20 10:45:35 +08:00
@patosky 考虑到加序号也不好处理,因为问题和选项既可以动态添加,也可以删除,而删除后剩下元素的序号也成了问题
Light3
2015-11-20 10:51:41 +08:00
你这个提交是什么样的提交阿 ajax 还是直接提交阿 我感觉你可以 js 加新的选项的时候在后面 i++一样加序列号 这样不就对上了
patosky
2015-11-20 10:53:38 +08:00
@csensix 删除了剩下元素的序号重新排序一下呗。
csensix
2015-11-20 10:54:17 +08:00
@Light3 直接提交。刚开始也是打算 js 加序号上去,由于页面上 html 元素以及一些元素类比较多,觉得不方便添加,试图用数组命名的方式来实现,却发现用不了二维的数组。
b821025551b
2015-11-20 10:56:26 +08:00
<div class="q_and_a">
<input value="question">
<div class="answer_list">
<input value="answer">
<input value="answer">
</div>
</div>
这种结构,用 jquery 选择器选择 q_and_a 类的子 input 值,存入数组 questionArr ;遍历选择 q_and_a 类下的 answer_list 所有 input 值,存入 questionArr 对应的问题下
csensix
2015-11-20 10:59:29 +08:00
@b821025551b 还有图片上传呢
b821025551b
2015-11-20 11:03:56 +08:00
@csensix 图片上传用单独接口啊,用这个接口拿到 path 或者 id 再走主流程,不然失败几率会很高
gdtv
2015-11-20 11:09:27 +08:00
我的项目也遇到类似的问题,我就是加序号的,至于删除后剩下元素的序号这个在 php 端处理一下就行了
csensix
2015-11-20 11:14:09 +08:00
谢谢大家,我试着添加序号看能否顺利解决
BOYPT
2015-11-20 11:20:53 +08:00
显然应该在服务器端建立好每个问题的 input 的唯一键值。
loveyu
2015-11-20 23:00:47 +08:00
感觉复杂的表单就应该前端把对象 JSON.stringify()一下,然后 ajax 传过去再 json_decode(),一堆$_POST ,实在不好理清
csensix
2015-11-23 08:35:58 +08:00
谢谢大家的帮助。通过增加一个隐藏字段来存储问题数组,新增和删除问题时都去修改该字段值,如 1,2,3

问题内的选项就直接通过 options_1[] options_2[] 这样存储就 ok 了。

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

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

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

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

© 2021 V2EX