您的位置:首页 > Web前端 > JavaScript

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

2012-02-20 14:11 507 查看
<!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" onchange="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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: