模仿微信公众号后台投票管理功能。
可以动态添加多个问题,每个问题下面默认有两个选项,也可动态添加多个。已经通过 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 属性。
![]() | 1 patosky 2015-11-20 10:41:57 +08:00 加个序号呗 |
![]() | 4 Light3 2015-11-20 10:51:41 +08:00 你这个提交是什么样的提交阿 ajax 还是直接提交阿 我感觉你可以 js 加新的选项的时候在后面 i++一样加序列号 这样不就对上了 |
![]() | 6 csensix OP @Light3 直接提交。刚开始也是打算 js 加序号上去,由于页面上 html 元素以及一些元素类比较多,觉得不方便添加,试图用数组命名的方式来实现,却发现用不了二维的数组。 |
![]() | 7 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 对应的问题下 |
![]() | 8 csensix OP @b821025551b 还有图片上传呢 |
![]() | 9 b821025551b 2015-11-20 11:03:56 +08:00 @csensix 图片上传用单独接口啊,用这个接口拿到 path 或者 id 再走主流程,不然失败几率会很高 |
10 gdtv 2015-11-20 11:09:27 +08:00 我的项目也遇到类似的问题,我就是加序号的,至于删除后剩下元素的序号这个在 php 端处理一下就行了 |
![]() | 11 csensix OP 谢谢大家,我试着添加序号看能否顺利解决 |
12 BOYPT 2015-11-20 11:20:53 +08:00 显然应该在服务器端建立好每个问题的 input 的唯一键值。 |
![]() | 13 loveyu 2015-11-20 23:00:47 +08:00 感觉复杂的表单就应该前端把对象 JSON.stringify()一下,然后 ajax 传过去再 json_decode(),一堆$_POST ,实在不好理清 |
![]() | 14 csensix OP 谢谢大家的帮助。通过增加一个隐藏字段来存储问题数组,新增和删除问题时都去修改该字段值,如 1,2,3 问题内的选项就直接通过 options_1[] options_2[] 这样存储就 ok 了。 |