Hallo,

Ik ben bezig met een systeem waar mee dingen kan bestellen. En als iets besteld dan moet bij elke product de pagina refreshen en daardoor gaat die weer helemaal naar boven van de pagina. Hoe kan je het zo maken dat dat niet zo gebeurd en dat het werk op pc en smartphone.

Dit is de code van de pagina.
Heb even 2 keer php omdat dan de code dan beter word weergeven want er ook script in staat.

<?php
<?php

include_once("config.php");

$page_name = "Bestelformulier";
$bestel1= "class='active'";
include("top3.php");
include("includes/db.php");
include("includes/functions.php");


if($_REQUEST['command']=='delete' && $_REQUEST['pid']>0){
remove_product($_REQUEST['pid']);
}
else if($_REQUEST['command']=='clear'){
unset($_SESSION['cart']);
}
else if($_REQUEST['command']=='update'){
$max=count($_SESSION['cart']);
for($i=0;$i<$max;$i++){
$pid=$_SESSION['cart'][$i]['productid'];
$q=intval($_REQUEST['product'.$pid]);
if($q>0 && $q<=999){
$_SESSION['cart'][$i]['qty']=$q;
}
else{
$msg='Some proudcts not updated!, quantity must be a number between 1 and 999';
}
}
}

if($_REQUEST['command']=='add' && $_REQUEST['productid']>0){
$pid=$_REQUEST['productid'];
addtocart($pid,1);
header("location:Bestel.php");
//header("location:load.php");
exit();
}
?>


<script language="javascript">
function addtocart(pid){
document.form1.productid.value=pid;
document.form1.command.value='add';
document.form1.submit();
}
</script>

<script language="javascript">
function del(pid){
if(confirm('Wil je echt dit product uit je Winkelwagen halen?')){
document.form1.pid.value=pid;
document.form1.command.value='delete';
document.form1.submit();
}
}
function clear_cart(){
if(confirm('Wil echt heel je Winkelwagen leeg halen?')){
document.form1.command.value='clear';
document.form1.submit();
}
}
function update_cart(){
document.form1.command.value='update';
document.form1.submit();
}
function verstuur_cart(){
document.form1.command.value='update';
document.form1.submit();
window.location='billing.php';
}

</script>

<form name="form1">
<input type="hidden" name="productid" />
<input type="hidden" name="command" />
</form>

<div class="page-header">
<h1><span class="glyphicon glyphicon-pencil"></span> Bestelformulier</h1>
</div>


<div id="myTabs" class="tab-content">
<div class="tab-pane fade in active" id="hs">
<?php include("HS.php")?>
</div>

<div class="tab-pane fade" id="verband">
<?php include("verbandmiddelen.php")?>

</div>
<div class="tab-pane fade" id="kantoor">
<?php include("kantoor.php")?>

</div>
</div>


<?php include('bottom.php') ?> ?>
Verdiep je eens in AJAX. ;)
Ik zal eens kijken, alvast bedankt voor de tip.
Of onthoud de verticale positie van het scherm zodat je hier na een pagerefresh naar terugspringt. Niet alles hoeft opgelost te worden met / is per definitie geschikt (technisch en/of functioneel) voor een oplossing met AJAX.

AJAX is een middel, geen doel.
Ja, dat is juist het probleem als ik zo script er in zet dan werkt het niet want als je product toevoegt dan komt dit nog achter de url te staan ../Bestel.php?productid=1&command=add maar daarnaar moet die eigenlijk weer naar de normale pagina ../Bestel.php
Wat misschien ook handig is is dat je je acties apart comparimenteert. Ik zie nu allemaal if-statements staan, en je bent al half bezig met het afdrukken van je HTML-document op het moment dat je spullen aan je cart toevoegt. Dit houdt waarschijnlijk ook in dat je output buffering aanzet om "headers already sent" foutmeldingen te onderdrukken? Output buffering gebruiken is een goede zaak, maar dan liefst wel voor de juiste redenen en niet als pleister voor dit soort dingen.

Het punt is, op het moment dat je zo'n add command aan het verwerken bent hoeft er helemaal geen output geproduceerd te worden.
Hoe kan ik dan oplossen? Want ben niet beste in php.

Reageren