<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<?php
$list = array(
'201201' => array(
'1' => array(
'groupid' => 1,
'name' => '费用A',
'value' => '1',
),
'2' => array(
'groupid' => 2,
'name' => '费用B',
'value' => '2',
),
'3' => array(
'groupid' => 3,
'name' => '费用C',
'value' => '3',
),
),
'201202' => array(
'1' => array(
'groupid' => 1,
'name' => '费用A',
'value' => '21',
),
'2' => array(
'groupid' => 2,
'name' => '费用B',
'value' => '22',
),
'3' => array(
'groupid' => 3,
'name' => '费用C',
'value' => '23',
),
),
'201203' => array(
'1' => array(
'groupid' => 1,
'name' => '费用A',
'value' => '31',
),
'2' => array(
'groupid' => 2,
'name' => '费用B',
'value' => '32',
),
'3' => array(
'groupid' => 3,
'name' => '费用C',
'value' => '33',
),
),
);
$budgetListFormatToJson = pwJsonEncode($list);
$budgetNum = 3;
function pwJsonEncode($var) {
switch (gettype($var)) {
case 'boolean' :
return $var ? 'true' : 'false';
case 'NULL' :
return 'null';
case 'integer' :
return (int) $var;
case 'double' :
case 'float' :
return (float) $var;
case 'string' :
return '"' . addslashes(str_replace(array("\n", "\r", "\t"), '', addcslashes($var, '\\"'))) . '"';
case 'array' :
if (count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
$properties = array();
foreach ($var as $name => $value) {
$properties[] = pwJsonEncode(strval($name)) . ':' . pwJsonEncode($value);
}
return '{' . join(',', $properties) . '}';
}
$elements = array_map('pwJsonEncode', $var);
return '[' . join(',', $elements) . ']';
}
return false;
}
?>
<form method="post">
<select class="select_wa mr5" οnchange="chage(this.value, 'createcheckbox', 'budgetdescribe');" name="date">
<option value="">--请选择--</option>
<?php
foreach ($list as $key=>$value) {
?>
<option value="<?php echo $key;?>"><?php echo $key;?></option>
<?php
}
?>
</select>
<div id="createcheckbox"></div>
<div id="budgetdescribe" style="margin-top:10px"></div>
<button type="submit"></button>
</form>
<script>
function JSONParse(text){
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
var j;
if (cx.test(text)) {
text = text.replace(cx, function (a) {
return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
});
}
if (/^[\],:{}\s]*$/.
test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
j = eval('(' + text + ')');
return j;
}
alert('error');
}
function getObj(id){
return document.getElementById(id);
}
function chage(date, createId, describeId) {
var budgetlist = JSONParse('<?php echo $budgetListFormatToJson;?>');
var budgetNum = '<?php echo $budgetNum;?>';
var newInput = describe = '';
if (typeof budgetlist[date] == 'undefined') {
getObj(createId).innerHTML = newInput;
getObj(describeId).innerHTML = describe;
return false;
}
for(var i = 1; i <= budgetNum; i++) {
newInput += budgetlist[date][i]['name']+'<input type="checkbox" value="1" name="budgets['+budgetlist[date][i]['groupid']+']"/>' + ' ';
describe += budgetlist[date][i]['name'] + ':'+ budgetlist[date][i]['value']+" ";
}
getObj(createId).innerHTML = newInput;
getObj(describeId).innerHTML = describe;
}
</script>
</body>
</html>