reload page functie in een echo
Ik wil een button hebben die een item in een winkelmandje stopt en tegelijketijd de page reload.
Nu zit deze button in een echo, zodat hij bij elk nieuwe product word toegevoegd.
Ik had op google gezien dat er een makkelijke functie is voor het reloaden alleen ik krijg deze niet in mijn button door die echo.
Iemand een idee hoe ik dit kan oplossen?
Waarom zou je de page moeten reloaden? Meeste webwinkels gebruiken een ajaxrequest, en als deze gelukt is verhogen ze het producttellertje van het winkelmand-icoontje.
Hij veranderd het nummertje van het winkelmandje pas als ik de website reload. Of als ik voor een 2e x op toevoegen druk.
Daarom is een AJAX-request juist handig.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$result = mysqli_query($conn,"SELECT * FROM `products`");
while($row = mysqli_fetch_assoc($result)){
echo "<div class='product_wrapper'>
<form method='post' action=''>
<input type='hidden' name='code' value=".$row['code']." />
<img src='".$row['Filename']."' width=300 height=300/>
<div class='name'>".$row['name']."</div>
<div class='price'>€".$row['price']."</div>
<button type='submit' class='buy'>Buy Now</button>
</form>
</div>";
}
mysqli_close($conn);
?>
$result = mysqli_query($conn,"SELECT * FROM `products`");
while($row = mysqli_fetch_assoc($result)){
echo "<div class='product_wrapper'>
<form method='post' action=''>
<input type='hidden' name='code' value=".$row['code']." />
<img src='".$row['Filename']."' width=300 height=300/>
<div class='name'>".$row['name']."</div>
<div class='price'>€".$row['price']."</div>
<button type='submit' class='buy'>Buy Now</button>
</form>
</div>";
}
mysqli_close($conn);
?>
AJAX-request voer je in javascript uit. En worden in dit geval via een HTML-element getriggerd.
Want ik heb dit gebruikt om die pagina te maken en hier werkt het wel:
https://www.allphptricks.com/simple-shopping-cart-using-php-and-mysql/
Gewijzigd op 14/10/2020 11:29:28 door marvin groothuis
Lijkt mij niet altijd praktisch in een webwinkel. Maar die afweging moet je zelf maken. Niets is zo vervelend als je in een bepaald product de 'uitgebreide productdetails'-tab hebt hebt geopend, vervolgens op 'Voeg toe aan mand' klikt, en dan terug bij de normale productpagina bent.
Weet jij hoe ik die reload funtie in een echo kan schrijven? Als dit niet werkt zoals ik het in gedachten heb ga ik die ajax request proberen.
Gewijzigd op 14/10/2020 11:38:11 door marvin groothuis
En dan in een OnClick='location.reload()' ??
Probeer het eens.
Code (php)
1
<?php <button type='submit' class='buy' onClick=".$location.reload().">Buy Now</button> ?>
Alleen dan krijg ik de volgende fout:
Notice: Undefined variable: location in D:\xampp\htdocs\webshop\productentest.php on line 59
Fatal error: Uncaught Error: Call to undefined function reload() in D:\xampp\htdocs\webshop\productentest.php:59 Stack trace: #0 {main} thrown in D:\xampp\htdocs\webshop\productentest.php on line 59
Javascript is geen PHP :P
Sorry voor het vele vragen, maar zit net in mn 2e jaar van applicatie ontwikkelaar.
Waarom denk je dat het opeens een PHP-variabel is?
Naja ik d8 dat als ik $ ervoor zet dat het wel werkt, maar dat was dus niet zo haha
Je hoeft het niet eens in de PHP-code te zoeken. Gewoon die onClick in je HTML verwerken.
Maar die button wordt per product dat ik toevoeg via de database daar neer gezet.
Werkt het dat wel als dat in mijn html verwerk?
Het is JavaScript, dus het werkt ook in de HTML bij je onClick.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
session_start();
include('config.php');
include('header.php');
$status="";
if (isset($_POST['code']) && $_POST['code']!=""){
$code = $_POST['code'];
$result = mysqli_query(
$conn,
"SELECT * FROM `products` WHERE `code`='$code'"
);
$row = mysqli_fetch_assoc($result);
$name = $row['name'];
$code = $row['code'];
$price = $row['price'];
$Filename = $row['Filename'];
$cartArray = array(
$code=>array(
'name'=>$name,
'code'=>$code,
'price'=>$price,
'quantity'=>1,
'Filename'=>$Filename)
);
if(empty($_SESSION["shopping_cart"])) {
$_SESSION["shopping_cart"] = $cartArray;
$status = "<div class='box'>Product is added to your cart!</div>";
}else{
$array_keys = array_keys($_SESSION["shopping_cart"]);
if(in_array($code,$array_keys)) {
$status = "<div class='box' style='color:red;'>
Product is already added to your cart!</div>";
} else {
$_SESSION["shopping_cart"] = array_merge(
$_SESSION["shopping_cart"],
$cartArray
);
$status = "<div class='box'>Product is added to your cart!</div>";
}
}
}
?>
<?php
$result = mysqli_query($conn,"SELECT * FROM `products`");
while($row = mysqli_fetch_assoc($result)){
echo "<div class='product_wrapper'>
<form method='post' action=''>
<input type='hidden' name='code' value=".$row['code']." />
<img src='".$row['Filename']."' width=300 height=300/>
<div class='name'>".$row['name']."</div>
<div class='price'>€".$row['price']."</div>
<button type='submit' class='buy' onClick=".$location.reload().">Buy Now</button>
</form>
</div>";
}
mysqli_close($conn);
?>
<div style="clear:both;"></div>
<div class="message_box" style="margin:10px 0px;">
<?php echo $status; ?>
</div>
<?php include('footer.php'); ?>
session_start();
include('config.php');
include('header.php');
$status="";
if (isset($_POST['code']) && $_POST['code']!=""){
$code = $_POST['code'];
$result = mysqli_query(
$conn,
"SELECT * FROM `products` WHERE `code`='$code'"
);
$row = mysqli_fetch_assoc($result);
$name = $row['name'];
$code = $row['code'];
$price = $row['price'];
$Filename = $row['Filename'];
$cartArray = array(
$code=>array(
'name'=>$name,
'code'=>$code,
'price'=>$price,
'quantity'=>1,
'Filename'=>$Filename)
);
if(empty($_SESSION["shopping_cart"])) {
$_SESSION["shopping_cart"] = $cartArray;
$status = "<div class='box'>Product is added to your cart!</div>";
}else{
$array_keys = array_keys($_SESSION["shopping_cart"]);
if(in_array($code,$array_keys)) {
$status = "<div class='box' style='color:red;'>
Product is already added to your cart!</div>";
} else {
$_SESSION["shopping_cart"] = array_merge(
$_SESSION["shopping_cart"],
$cartArray
);
$status = "<div class='box'>Product is added to your cart!</div>";
}
}
}
?>
<?php
$result = mysqli_query($conn,"SELECT * FROM `products`");
while($row = mysqli_fetch_assoc($result)){
echo "<div class='product_wrapper'>
<form method='post' action=''>
<input type='hidden' name='code' value=".$row['code']." />
<img src='".$row['Filename']."' width=300 height=300/>
<div class='name'>".$row['name']."</div>
<div class='price'>€".$row['price']."</div>
<button type='submit' class='buy' onClick=".$location.reload().">Buy Now</button>
</form>
</div>";
}
mysqli_close($conn);
?>
<div style="clear:both;"></div>
<div class="message_box" style="margin:10px 0px;">
<?php echo $status; ?>
</div>
<?php include('footer.php'); ?>
Gewijzigd op 14/10/2020 12:19:54 door marvin groothuis