/lenasys/0.1

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/0.1

« back to all changes in this revision

Viewing changes to trunk/Code Viewer Alt/AJAX/AjaxDemoApp6_makeBookings.html

  • Committer: Henrik G.
  • Date: 2013-03-26 23:22:55 UTC
  • Revision ID: henrik.gustavsson@his.se-20130326232255-ik6snyatlbkf3zs1
First seed of Lenasys ... Needs to be Organized Further

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html>
 
2
<head>
 
3
                <style>
 
4
                                        table {border: 1px dotted gray; padding: 1em;}
 
5
                </style>
 
6
 
 
7
                <script language="javascript" src="../jquery/jquery-1.8.2.min.js"></script>
 
8
 
 
9
                <script language="javascript">
 
10
 
 
11
                        // We keep the resultset in a variable if we want to redraw dynamically
 
12
                        // Size is updated through separate ajax call.
 
13
                
 
14
                        var resultset;
 
15
                        var isvalid=false;
 
16
                        var size=0;
 
17
                
 
18
                        function bookPosition(position)
 
19
                        {
 
20
                                var rebate=0;
 
21
                                var resource=document.getElementById("resourceID").value;
 
22
                                var bookingdate=document.getElementById("date").value;
 
23
                                var customer=document.getElementById("userID").value;
 
24
                                var company=document.getElementById("type").value;
 
25
 
 
26
 
 
27
                        $.ajax({
 
28
                                            type: 'POST',
 
29
                                            url: '../booking/makebooking_XML.php',
 
30
                                            data: {
 
31
                                                        type: company,
 
32
                                                        resourceID: resource,
 
33
                                                        date: bookingdate,
 
34
                                                        customerID: customer,
 
35
                                                        rebate: rebate,
 
36
                                                        status: "2", // 2 = "Real" booking.
 
37
                                                        position: position,
 
38
                                            },
 
39
                                            success:  bookingmade,
 
40
                                            error: errormsg             
 
41
                                   });
 
42
                        }
 
43
 
 
44
                        // Handle errors.
 
45
                        function errormsg(jqXHR,textStatus,errorThrown) {
 
46
                            alert(jqXHR.responseText);
 
47
                        }
 
48
                
 
49
                        function bookingmade(returnedData)
 
50
                        {
 
51
                                        alert('booked!');
 
52
                                        processinputbox();
 
53
                        }
 
54
                
 
55
                        function drawResult()
 
56
                        {
 
57
                                // Use size from initial ajax call
 
58
                                // Generate Table including booking Javascript calls
 
59
                                var output="<table border='1'>";
 
60
                                output+="<tr>";
 
61
                                var matchedbooking,matched;
 
62
                                for(i = 0; i < size; i++) {
 
63
                                        matched=false;
 
64
                                        for (j = 0; j < resultset.childNodes.length; j++) {
 
65
                                                if(resultset.childNodes.item(j).nodeName=="booking"){
 
66
                                                        var booking=resultset.childNodes.item(j);
 
67
                                                        if(i==booking.attributes['position'].nodeValue){
 
68
                                                                matchedbooking=booking;
 
69
                                                                matched=true;
 
70
                                                        }
 
71
                                                }
 
72
                                        }       
 
73
                                
 
74
                                        if(matched){
 
75
                                                output+="<td bgcolor='#ffeedd'>&nbsp;&nbsp;</td>";
 
76
                                        }else{
 
77
                                                output+="<td bgcolor='#ffffff' onclick='bookPosition("+i+")' style='cursor:pointer;'>&nbsp;&nbsp;</td>";
 
78
                                        }
 
79
                                        if(i%4==3) output+="</tr><tr>"; 
 
80
                                }
 
81
                        
 
82
                                output+="</tr>";
 
83
                                output+="</table>"
 
84
                                var div=document.getElementById('OutputDiv');
 
85
                                div.innerHTML=output;
 
86
                        }
 
87
 
 
88
                        function ResultBooking(returnedData)
 
89
                        {
 
90
                                // An XML DOM document is returned from AJAX
 
91
                                resultset=returnedData.childNodes[0];
 
92
                                isvalid=true;
 
93
                        
 
94
                                drawResult();           
 
95
                        }                               
 
96
 
 
97
                        function ResultSize(returnedData)
 
98
                        {
 
99
                                // An XML DOM document is returned from AJAX
 
100
                                var resultsetsize=returnedData.childNodes[0];
 
101
                        
 
102
                                // Iterate over all nodes in root node (i.e. customers)
 
103
                                for (i = 0; i < resultsetsize.childNodes.length; i++) {
 
104
                                        if(resultsetsize.childNodes.item(i).nodeName=="resource"){
 
105
                                                var resource=resultsetsize.childNodes.item(i);
 
106
                                                size=resource.attributes['size'].nodeValue;
 
107
                                        }
 
108
                                }
 
109
                        }               
 
110
                
 
111
                        function processinputbox()
 
112
                        {
 
113
                                resource=document.getElementById("resourceID").value;
 
114
                                bookingdate=document.getElementById("date").value;
 
115
 
 
116
                        $.ajax({
 
117
                                        type: 'POST',
 
118
                                        url: '../booking/getresourcesize_XML.php',
 
119
                                        data: { resourceID: resource},
 
120
                                        success:  ResultSize
 
121
                                    });
 
122
 
 
123
                        $.ajax({
 
124
                                                type: 'POST',
 
125
                                                url: '../booking/getbookings_XML.php',
 
126
                                                data: {
 
127
                                                        resourceID: resource,
 
128
                                                        date: bookingdate
 
129
                                                },
 
130
                                                success:  ResultBooking
 
131
                                    });
 
132
                        }               
 
133
                </script>
 
134
</head>
 
135
<body>
 
136
 
 
137
<form name='searchbookings'>
 
138
                userID:<br><input type='text' name='userID' id='userID' onchange="processinputbox()" onkeyup="processinputbox()"><br>
 
139
                resourceID:<br><input type='text' name='resourceID' id='resourceID' onchange="processinputbox()" onkeyup="processinputbox()"><br>
 
140
                company:<br><input type='text' name='type' id='type' onchange="processinputbox()" onkeyup="processinputbox()"><br>
 
141
                date:<br><input type='text' name='date' id='date' onchange="processinputbox()" onkeyup="processinputbox()"><br>
 
142
</form>
 
143
<br>
 
144
<div id="OutputDiv">
 
145
<br>
 
146
 
 
147
</body>
 
148
</html>