· 6 years ago · Nov 04, 2019, 02:57 AM
1<?php
2 // PDO configuration
3 $dbtype = "sqlite";
4 $dbhost = "localhost";
5 $dbname = "webbshop";
6 $dbuser = "";
7 $dbpass = "";
8 $charset = "UTF8";
9 $dsn = "$dbtype:webbshop.db3";
10 $DBH = null;
11
12 class Aquas {
13 public $Article="";
14 public $Prize;
15 function __construct($Article="", $Prize=""){
16 if(!empty($Article))
17 $this->Article($Article);
18 if(!empty($Prize))
19 $this->Prize($Prize);
20 }
21 }
22
23 //get the query parameter from URL
24 $query = $_GET["query"];
25
26 try{
27 # a DB Handler to manage the database connection
28 if($DBH == null)
29 $DBH = new PDO($dsn);
30 }
31 catch (PDOException $e){
32 echo '<b>PDOException: </b>', $e->getMessage();
33 die();
34 }
35
36 $sql = "SELECT article, prize FROM cart WHERE cart.article LIKE :query";
37 $STH = $DBH->prepare($sql);
38 $STH->execute(array(':query' => '%'.$query.'%'));
39 $STH->setFetchMode(PDO::FETCH_CLASS, 'Aquas');
40
41 $notvisited = TRUE;
42 $aquaArray = array();
43
44 while ($artcd = $STH->fetch()){
45 $aquaArray[] = $artcd;
46 $notvisited = FALSE;
47 }
48
49 # close the connection
50 $DBH = null;
51
52 if ($notvisited)
53 $response = "No artist found with name: " . $query;
54 else
55 $response = json_encode($aquaArray); // serialize the objects
56 //output the response
57 echo $response;
58 error_log($response);
59?>
60
61
62-------------------------------------->
63-------------------------------------->
64
65<!DOCTYPE html>
66<?php
67session_start();
68
69 require_once('db.php');
70 $db = new MyDB();
71
72
73 if(isset($_POST['aquaFlavor'])){
74 $db->InsertToCart("aquaF", 300);
75 }
76
77 if(isset($_POST['springFlavor'])){
78 $db->InsertToCart("springF", 150);
79 }
80
81 if(isset($_POST['emptyCart'])){
82 $db->EmptyCart();
83 }
84
85
86
87?>
88<html>
89<head>
90 <meta charset="UTF-8">
91 <title>WebbShop</title>
92 <link rel="stylesheet" href="style.css">
93 <script src="scriptsOne.js"></script>
94</head>
95
96<body>
97 <form action="labb6.php" method="post">
98 <nav class="" >
99 <div id="banner">
100
101 <ul>
102 <li><h4 class="companyName">POWERED WATER</h4></li>
103 <li><input type="text" name="search"></li>
104 <li><button type="button" onclick="showTable(search.value);" class="somethingButton">Search</button></li>
105 <li>
106 <div class="dropdown">
107 <button class="dropbtn">Cart</button>
108 <div class="dropdown-content">
109 <p>Aqua Flavor x <?php
110 $returenCount = $db->SelectArticleCount('aquaF');
111 echo $returenCount; ?>
112
113 </p>
114 <p>Spring Flavor x <?php
115 $returenCount = $db->SelectArticleCount('springF');
116 echo $returenCount; ?></p>
117
118 <p>Total Price <?php $totalCart = $db->SelectTotalCartPrize();
119 echo $totalCart; ?></p>
120
121 <button type="submit" name="emptyCart">Empty Cart</button>
122 </div>
123 </div>
124 </li>
125 </ul>
126 </div>
127
128 <div id="myContent">
129
130 <button class="buttonBuyGrad buyButton1" type="submit" name="aquaFlavor">Buy Aqua Flavor</button>
131 </div>
132
133
134
135 <div id="showCars">
136 <button class="buttonBuyGrad2 buyButton" type="submit" name="springFlavor">Buy Spring Flavor</button>
137 </div>
138
139 <div id="showCars2">
140 <button class="buyButton"></button>
141 </div>
142 </nav>
143
144
145
146 <!-- andra raden -->
147 <section class="scrollable-nav">
148 <div class="scrollable-div"></div>
149 </section>
150
151 </form>
152</body>
153</html>
154
155----------------------->MIN VER<--------------------------------
156 function getXmlHttpRequestObject() {
157 if (window.XMLHttpRequest) {
158 return new XMLHttpRequest(); // IE7 and others
159 } else if (window.ActiveXObject) {
160 return new ActiveXObject("Microsoft.XMLHTTP"); // IE6 and less
161 } else {
162 alert("Your browser doesn't support the XmlHttpRequest object!");
163 }
164 }
165
166 function showTable(str) {
167 if (str.length == 0) {
168 return;
169 }
170
171 let xmlHttp = getXmlHttpRequestObject();
172
173 xmlHttp.onreadystatechange = function () {
174 if (xmlHttp.readyState == XMLHttpRequest.DONE && xmlHttp.status == 200) {
175 handleXMLHttpresponse(xmlHttp.responseText);
176 }
177 }
178 let url = "labb6search.php?query=" + str;
179
180 xmlHttp.open("GET", url, true);
181
182 xmlHttp.send();
183
184 }
185
186 function handleXMLHttpresponse(json) {
187 let jsonData = JSON.parse(json);
188 for (let art in jsonData){
189 if(jsonData[art].Article == "springF"){
190 document.getElementById("showCars").scrollIntoView();
191 }
192 else if(jsonData[art].Article == "aquaF"){
193 document.getElementById("myContent").scrollIntoView();
194
195 }
196 else{
197 alert("yikes");
198 }
199 }
200 }
201
202---------------------------------------->db php
203
204<?php
205 class MyDB extends SQLite3
206 {
207 function __construct()
208 {
209 $this->open('webbshop.db3');
210
211 $sql =<<<EOF
212 CREATE TABLE IF NOT EXISTS CART
213 (ID INTEGER PRIMARY KEY autoincrement,
214 Article TEXT,
215 Prize INT);
216EOF;
217 $ret = $this->exec($sql);
218 }
219
220 function InsertCars($model, $prize){
221 $res = $this->query('INSERT INTO CARS (MODEL, PRIZE) VALUES ("'.$model.'", '.$prize.')');
222 }
223
224 function SelectCars(){
225 $res = $this->query('SELECT MODEL, PRIZE FROM CARS');
226
227 return $res;
228
229 }
230
231 function SelectArticleCount($article){
232 $res = $this->query('SELECT count(ARTICLE) as count FROM CART WHERE ARTICLE = "'.$article.'"');
233
234 $row = $res->fetchArray();
235 return $numRows = $row['count'];
236
237 }
238
239 function InsertToCart($article, $prize){
240 $res = $this->query('INSERT INTO CART (ARTICLE, PRIZE) VALUES ("'.$article.'", '.$prize.')');
241 }
242
243 function SelectTotalCartPrize(){
244 $res = $this->query('SELECT total(PRIZE) AS TOTAL_PRICE FROM CART');
245 $row = $res->fetchArray();
246 return $numRows = $row['TOTAL_PRICE'];
247 }
248
249 function EmptyCart(){
250 $this->query('DELETE FROM CART');
251 }
252 }
253
254?>