Ik heb een producten pagina. Afhankelijk van de GET['product'] worden hier bepaalde dingen van van een bepaald product getoond. Dit gaat gewoon goed.

Nu heb ik vandaag een zogeheten AJAX tab menu met 3 tabs aangemaakt, namelijk: Informatie, specs en gerelateerd. Doordat het met AJAX is herlaad de pagina dus niet. :-)

Als ik op een tab klik wordt het bestand content.php?content=. geladen waarin staat:

<?php
if ($_GET['content'] == 1)
{
echo 'Hier komt de informatie';
}
if ($_GET['content'] == 2)
{
echo 'Hier komen de specs';
}
if ($_GET['content'] == 3)
{
echo 'Hier komen de gerelateerde producten';
}
?>
Als ik dus bijvoorbeeld op de tab specs klik, dan wordt content.php?content=2 geladen. Dat scriptje werkt op zich wel, alleen ik heb nu het probleem dat het script niet meer weet om welk product het staat gezien de $_GET alleen ['content'] bevat en niet ['product'].

Het script moet dit echter wel weten, want als bijvoorbeeld conten.phpt?content= 2 geladen wordt, moet een query uitgevoerd worden als:
<?php
$query = "SELECT naam, waarde FROM specs WHERE product_id = '" .$_GET['product']."'";
?>

Dit werkt dus helaas niet. Als ik in plaats van $_GET['product'] bijvoorbeeld gewoon 2 plaats, dan werkt het wel gewoon.

Zou iemand mij kunnen zeggen hoe ik het voor elkaar kan krijgen dat het script ook weet om welk product het gaat?
ik snap het niet helemaal maar is dit ongeveer wat je wilt??
content.php?content=2&product=2??

als de content altijd het zelfde nr heeft als product is het oook makelijk natuurlijk;)
Hoi Simon,

Je zou een product nummer kunnen meegeven, en in je content '2' een switch daarvan maken.

Dus dan komt de url er ondergeveer zo uit te zien:
pagina.php?content=2&productnr=3

Zoiets? Of begrijp ik je verkeerd?

Groetjes, Wessel

PS: Bij je derde if staat er een ' en een ; te veel.

[edit]
Te laat
[/edit]
@Mr. Heinen: Voordat ik met de ajax tabs werkte had ik dus gewoon een url als pagina.php?id=2. Nu er die 3 tabs bij zijn gekomen zijn er dus 3 keuzemogelijkheden bijgekomen. Als je bijvoorbeeld op tab 1 klikt, dan laad hij content.php?id=1 en dat is dan de volgende code:
<?php
if ($_GET['content'] == 1)
{
echo 'Hier komt de informatie';
}
?>
Als ik in die if een query wil gebruiken waar in de WHERE de $_GET['product'] bekend moet zijn, dan gaat het fout. $_GET['product'] staat namelijk niet in content.php?content=1... Snap je? :-)

@Wessel:
Ik bedoel dus inderdaad dat het productnummer meegegeven moet worden. Je begrijpt mij dus goed! :-) Zou jij misschien kunnen zeggen hoe die code er dan uit komt te zien?
Als ik op een tab klik wordt het bestand content.php?content=. geladen waarin staat:

nu moet je gewoon dit laden: 'content.php?product='.$_GET['product'].'&content='....
Ja, maar dat gaat lastig want die aanroep wordt gedaan in JS. Of zie ik dit verkeerd? :-)

Dat is de volgende code:
function callAHAH(url, pageElement, callMessage, errorMessage) {
document.getElementById(pageElement).innerHTML = callMessage;
try {
req = new XMLHttpRequest(); /* e.g. Firefox */
} catch(e) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP"); /* some versions IE */
} catch (e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP"); /* some versions IE */
} catch (E) {
req = false;
}
}
}
req.onreadystatechange = function() {responseAHAH(pageElement, errorMessage);};
req.open("GET",url,true);
req.send(null);
}

callAHAH('content.php?content=' + tab, 'content', 'getting content for tab '+tab+'. Wait...', 'Error');

Reageren