$info) if (array_key_exists('format', $info)) $row[$field] = sprintf($info['format'], $row[$field]); return $row; } function details($mask) { if (empty($_POST['id'])) return array('error' => 'Missing ID'); $sql = sprintf('SELECT id,%s FROM %s WHERE id = %d', implode(',', array_keys($mask['details']['list'])), $mask['table'], $_POST['id']); $sth = pg_query($sql); if (!$sth) return array('error' => pg_last_error(), 'sql' => $sql); $row = pg_fetch_assoc($sth); foreach ($mask['details']['list'] as $field => $info) if (array_key_exists('format', $info)) $row[$field] = sprintf($info['format'], $row[$field]); return $row; } function format_ajax($data) { header('Content-type: application/json; charset=UTF-8'); echo json_encode($data); exit; } if (empty($_POST['func'])) exit; if (empty($_POST['mask'])) exit; connect_db(); if (load_mask($_POST['mask'], '../') === false) exit; $data = array('error' => 'Unknown function'); if ($_POST['func'] == 'fetch') { $data = fetch($mask); } elseif ($_POST['func'] == 'details') { $data = details($mask); } elseif ($_POST['func'] == 'save') { error_log('save'); } format_ajax($data); ?>