模仿微信公众号后台投票管理功能。
可以动态添加多个问题,每个问题下面默认有两个选项,也可动态添加多个。已经通过 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 了。 |