Move general management into init.php
[misc/kostenrechnung] / ajax / ajax.php
1 <?php
2
3 require_once('../init.php');
4
5 function fetch($mask)
6 {
7   $sql = sprintf('SELECT id,%s FROM %s WHERE id = %d',
8                  implode(',', array_keys($mask['edit'])),
9                  $mask['table'], $_POST['id']);
10   error_log($sql);
11   $sth = pg_query($sql);
12 }
13
14 function details($mask)
15 {
16   if (empty($_POST['id']))
17     return array('error' => 'Missing ID');
18
19   $sql = sprintf('SELECT id,%s FROM %s WHERE id = %d',
20                  implode(',', array_keys($mask['details']['list'])),
21                  $mask['table'], $_POST['id']);
22   error_log($sql);
23   $sth = pg_query($sql);
24
25   if (!$sth)
26     return array('error' => pg_last_error(),
27                  'sql' => $sql);
28
29   $row = pg_fetch_assoc($sth);
30
31   foreach ($mask['details']['list'] as $field => $info)
32     if (array_key_exists('format', $info))
33       $row[$field] = sprintf($info['format'], $row[$field]);
34
35   return $row;
36 }
37
38 function format_ajax($data)
39 {
40   header('Content-type: application/json; charset=UTF-8');
41   echo json_encode($data);
42   exit;
43 }
44
45 if (empty($_POST['func']))
46   exit;
47
48 if (empty($_POST['mask']))
49   exit;
50
51 connect_db();
52 if (load_mask($_POST['mask'], '../') === false) exit;
53
54 $data = array('error' => 'Unknown function');
55
56 if ($_POST['func'] == 'fetch') {
57   $data = fetch($mask);
58 } elseif ($_POST['func'] == 'details') {
59   $data = details($mask);
60 } elseif ($_POST['func'] == 'save') {
61   error_log('save');
62 }
63
64 format_ajax($data);
65
66 ?>