Beste,

Ik ben bezig met een project voor een bedrijf waar ik nu werkzaam ben, dit project is in principe afgerond, alleen ben ik nu bezig om het meer overzichtelijk te maken. Voor de geïnteresseerde onder ons, mijn project is het maken van een webshop.

Nu ben ik dus een probleem tegen gekomen, ik had mijn producten allemaal in één grote lijst staan, waarbij ik een pagina nummering had, die dus na elke 10 producten een nieuwe pagina maakte.

Nu heb ik bij al deze producten een categorie meegegeven (enkel een aantal testproducten). Vervolgens heb ik door middel van ajax een drop-down menu gemaakt, waarbij je kunt kiezen van welke categorie je producten wilt zien.

De functionaliteit hiervan werkt in principe half. Hij toont dus producten van de gekozen categorie, maar ik heb dus 4 producten in de lijst en hij toont er maar 3, terwijl hij er 10 moet tonen en dan pas een nieuwe pagina moet maken. Verder is nog een probleem dat hij 7 pagina's aan maakt, terwijl als hij er dus 3 toont, de 4e op een 2e pagina moet staan en dus geen 7 pagina's zijn.

Mijn laatste probleem is, dat als ik voor pagina 2 kies, deze link wel werkt, maar dan moet de keuze uit categorie weer opnieuw worden gekozen en op het moment dat dat gebeurt kom je weer op de eerste pagina met slechts 3 producten uit.

Ik hoop dat iemand mij hierbij kan helpen. Ik weet ook niet zeker of ik het zo goed beschreven heb, maar voor degene die een kijkje willen nemen, kunnen die hier kijken : Webshop.

Als volgt, de code:

Producten.php

<?php
	session_start();
	ob_start();	
	include("db_connect.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<script type="text/javascript" src="livesearch.js"></script>
		<script type="text/javascript" src="selectcat.js"></script>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
			<title>Webshop @ College Groep Nederland</title>
		<link rel="stylesheet" type="text/css" href="style.css" />
		<style type="text/css">
			p {margin: 0px; padding: 0px;}
		</style>
	</head>
	<body>
		<div id="wrapper">
			<div id="header"></div>
			<div id="leftcolumn">		 
				<h2>Menu</h2><br>
					<?php 
						include 'menu.php' 
					?>
			</div>
			<div id="rightcolumn">
				<?php
					if(empty($_GET['ProductID'])) 
						{
				?>
							<a href='index.php'>Home</a> » <a href='producten.php'>Producten</a><br><br>
							<h2>Producten</h2><p>
							<br>
							Hieronder ziet u een overzicht van al onze producten. Klik op een product om gedetaileerde informatie van het product te lezen.<br><br>
							Om een product te zoeken typt u een zoekwoord in, in het invoerveld.<br>
							<table border="0">
								<tr>
									<td>
										<form action="zoek_product.php" method="post">
											<input type="text" name="naam" id="txt1" size="20" onkeyup="showResult(this.value)" />
											<input type="submit" value="Zoeken">
										</form>
									</td>
									<td>
										        <b>Categorie:</b>
									</td>
									<td>
										<form>
											<select name="cat" onchange="showStatus(this.value)">
												<option value="">Selecteer categorie</option>
												<option value="accp">Access Points</option>
												<option value="Notebook">Notebooks</option>
											</select>
										</form>
									</td>
								</tr>
							</table>
							<br>
							<div id="txtHint">
								<b>Producten worden hier getoond.</b>
							</div>
				<?php
						}
					else
						{
							$sql2 = "SELECT * FROM productgegevens WHERE ProductID = '".$_GET['ProductID']."'";
							$result2 = mysql_query($sql2);
							while ($rij2 = mysql_fetch_array($result2))
								{
									$get_prijs	= $rij2['prijs'];
									$rond_prijs	= round($get_prijs, 2);
									$prijs		= number_format($rond_prijs, 2, ',', '.');

									$product = stripslashes($rij2['productnaam']);

									echo "<a href='index.php'>Home</a> » <a href='producten.php'>Producten</a> » "; echo $product;
									echo "<br><br>";
									echo "<TABLE border='0' class='producten'>";
									echo (
										"<tr>" .
											"<td width='62%' class='producttitel'> <b>". $product . " </b> </td>" .
											"<td width='38%' class='producttitel'> <b>Prijs:</b> €". $prijs . " </td>" .
										"</tr>" .
										
										"<tr>" .
											"<td colspan='2' valign='top' class='products'>". stripslashes($rij2['omschrijving']) . " </td>" .
										"</tr>" .
										
										"<tr>" .
											"<td colspan='2' class='producttitel'>\n " 
										);
							if($array['level'] == 2)
								{
									echo ("<a href='productbestellen.php?ProductID=".$_GET['ProductID']."'>Product bestellen</a> ");
								}
							else
								{
									echo (" ");
								}
							if($array['level'] == 1)
								{
									echo ("<a href='producttoevaan.php?ProductID=".$_GET['ProductID']."'>Toevoegen aan aanbiedingen</a> ");
									echo (" | ");
									echo ("<a href='productaanpassen.php?ProductID=".$_GET['ProductID']."'>Product aanpassen</a> ");
									echo (" | ");
									echo ("<a href='product_verwijderen.php?ProductID=".$_GET['ProductID']."'>Product verwijderen</a> ");
								}
							else
								{
									echo (" ");
								}
									echo "</td>";
									echo "</tr>";
								}
						}
				?>

									</td>
								</tr>
							</table>

			</div>
		</div>
	</body>
</html>
	<?php 
		ob_end_flush();
	?>


selectcat.js

var xmlhttp;

function showStatus(str)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
var url="getcat.php";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}


getcat.php

<?php
	session_start();
	ob_start();	
	include("db_connect.php");
	error_reporting(E_ALL);

	if (isset($_GET["page"]))
		{
			$page  = $_GET["page"]; 
		}
	else 
		{
			$page=1; 
		};
	$start_from = ($page-1) * 10; 
	$q=$_GET["q"];
	$sql = "SELECT ProductID, productnaam, prijs, korteomschrijving, cat, omschrijving FROM `productgegevens` WHERE cat = '".$q."' AND `aanbprijs` = '' ORDER BY productnaam ASC LIMIT $start_from, 10"; 
	$rs_result = mysql_query ($sql);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<link rel="stylesheet" type="text/css" href="style.css" />
	</head>
	<?php
		$sql = "SELECT COUNT(productnaam) FROM productgegevens"; 
		$row = mysql_fetch_row($rs_result); 
		$total_records = $row[0]; 
		$total_pages = ceil($total_records / 10); 
		echo "Pagina ";
		for ($i=1; $i<=$total_pages; $i++)
			{
				echo "<a href='producten.php?page=".$i."&cat=".$q."'>".$i."</a> "; 
			}
	?>
	<table class='producttable' border='0'>
		<tr>
			<th align='left'  	class='producttitel' 	width="120">	Productnaam			</th>
			<th align='left'  	class='producttitel' 	width="200">	Korte omschrijving	</th>
			<th align='left'  	class='producttitel' 	width="155">	Categorie			</th>
			<th align='right' 	class='producttitel' 	width="75">		Prijs				</th>
		</tr>
		<?php 
			while ($rij = mysql_fetch_assoc($rs_result))
				{
					$get_prijs	= $rij['prijs'];
					$rond_prijs	= round($get_prijs, 2);
					$prijs		= number_format($rond_prijs, 2, ',', '.');

					echo ("<tr><td valign='top' class='productinfo'><a href='producten.php?ProductID=".$rij['ProductID']."'>". stripslashes($rij['productnaam']) . "</a> </td> " .
						"<td class='productoms'>" . stripslashes($rij['korteomschrijving']) . " </td> " .
						"<td class='productcat'>" . stripslashes($rij['cat']) . " </td> " .
						"<td align='right'>€ " . $prijs . " </td> " . " </tr>\n " );
				}

				?>
		<tr>
			<td colspan='4' class='producttitel'> </td>
		</tr>
	</table>
	<?php
	echo "Pagina ";
	for ($i=1; $i<=$total_pages; $i++)
		{
			echo "<a href='producten.php?page=".$i."'>".$i."</a> "; 
		}
	?>
</html>
Hmm, ik heb geen idee, het spijt me voor je. Misschien ff een privebericht stueren naar Emmanuel?

Reageren