将数组格式化成json格式(2 相关日期下的 费用)

<!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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值