当前位置: 代码迷 >> PHP >> 如何让这个搞成一个二维数组,js控制,jquery,都可以,提交到后台,后台去解析这个二维数组?
  详细解决方案

如何让这个搞成一个二维数组,js控制,jquery,都可以,提交到后台,后台去解析这个二维数组?

热度:81   发布时间:2016-04-28 18:00:35.0
怎么让这个搞成一个二维数组,js控制,jquery,都可以,提交到后台,后台去解析这个二维数组??急


这是前端html代码写的三个模块,每个模块有模块id ,模块下面有很多子功能复选框,当你选中某个模块,某些模块下面的子功能提交时候,后台接收到的只是一个数组或者json串,然后去解析这个数组或者json, 前台同时提交过来时候有个角色id ,
数据库 字段有 mid roleid marks   下面解释一下三个字段,mid和roleid是多对多,复合主键关系,mid 模块id,roleid角色id,marks 本模块下的功能元算码(这个是复选框的value值相加或者与与运算的值是个常数,这里不关心模块下复选框value怎么运算的,反正是个常数),请问前端的选择完那些复选框的值以后该用js或者jquery 怎么控制呢,我觉得是把选中的复选框们赋值一个数组,然后提交比较好,但是我现在不知道咋写,有更好的方案给说下,最好是带代码的那种,本人刚入门php,求大神给方案????
------解决思路----------------------
点击时给子ID用一个自定义属性
判断这个子ID是否存在这个自定义属性,然后把拥有这个自定义属性的input的value和id放到一个数组中去...

------解决思路----------------------
<form method=post>
<input type=checkbox name='A[]' value=1>
<input type=checkbox name='A[]' value=2>
<input type=checkbox name='A[]' value=3>
<input type=submit value=ok>
</form>
<?php
print_r($_POST);
自己测试一下就知道了



















------解决思路----------------------

模拟了一个 截图如下

代码如下
[code=php]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Choose</title>
<link href="./style/style.css" rel="stylesheet" type="text/css" />
<script src="./js/jquery.min.js"></script>
</head>
<body>
<div class="list">
<form action="aaa" onsubmit="return false">
<dl>
<dt>筛选</dt>
<dd>
<div class="fa">父类:<input type="checkbox" name="1" autocomplete="off" value="1"></div>
<div class="zi">
<ul>
<li>子类:<input type="checkbox" name="1" value="a" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="1" value="b" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="1" value="c" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="1" value="d" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="1" value="e" autocomplete="off"></li>
</ul>
</div>
</dd>
<div class="clear"></div>
<dd>
<div class="fa">父类:<input type="checkbox" name="2" autocomplete="off" value="2"></div>
<div class="zi">
<ul>
<li>子类:<input type="checkbox" name="2" value="a" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="2" value="b" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="2" value="c" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="2" value="d" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="2" value="e" autocomplete="off"></li>
</ul>
</div>
</dd>
<div class="clear"></div>
<dd>
<div class="fa">父类:<input type="checkbox" name="3" autocomplete="off" value="3"></div>
<div class="zi">
<ul>
<li>子类:<input type="checkbox" name="3" value="a" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="3" value="b" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="3" value="c" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="3" value="d" autocomplete="off"></li>
<li>子类:<input type="checkbox" name="3" value="e" autocomplete="off"></li>
</ul>
</div>
</dd>
</dl>
<div><input type="submit" value="提交" class="tj"></div>
</form>
</div>

<script>
$(function(){
$('.zi li input').click(function(){
var F_input=$(this).parents('.zi').siblings('.fa').find('input');
if(!$(this).hasClass('gz')){
   $(this).addClass('gz');
   F_input.addClass('gf');
}else{
   $(this).removeClass('gz');
   var gzlength=$(this).parents('.zi').find('.gz').length; // 当前对象的祖先元素(zi)下的$('.gz')这个集合的长度
   if(gzlength==0){
    F_input.removeClass('gf');  
   }
}
})

$('.tj').click(function(){
var p="";
for (var i = 0; i < $('.gf').length; i++) {

var gz=$('.gf').eq(i).parents('.fa').siblings('.zi').find('.gz');
for (var a = 0; a < gz.length; a++) {
 p+=$('.gf').eq(i).val()+gz.eq(a).val()+"
------解决思路----------------------
"; 
};

};
alert(p);
})



 
})
</script>
</body>
</html>

[/code]
------解决思路----------------------
不知道是不是LZ要的
  相关解决方案