ik heb momenteel een login pagina gemaakt, de gebruiker kan hier een categorie selecteren ( in een dynamic listbox ) en moet nadien nog bevestigen met een wachtwoord.
De listbox wordt geladen met records uit de tabel categorie ( categorie_id en categorie_naam ) enkel de naam is zichtbaar.
Bedoeling:
Als iemand een bepaalde categorie selecteerd in de listbox + ook nog eens het juiste wachtwoord intypt moet de persoon op een andere pagina ( bijvoorbeeld: catalog.php ) de lijst te zien krijgen van alle producten ( met hun details: naam, prijs ) die tot deze categorie behoren.
Dus de catalog.php is dus gewoon een tabel met recordsets en een repeat region in dreamweaver.
recordset is dus gewoon: select * from products where products.categorie_id = categorie.categorie_id ( syntax is hier wellicht fout)
Probleem:
Hoe geef je in dreamweaver het categorie_id op de eerste pagina door zodat je op de 2de pagina een selectie querie kan draaien van alle producten die tot deze categorie behoren ????
alvast bedankt
dreamweaver php vraag
- meon
- Administrator
- Berichten: 16609
- Lid geworden op: 18 feb 2003, 22:02
- Twitter: meon
- Locatie: Bree
- Uitgedeelde bedankjes: 564 keer
- Bedankt: 759 keer
- Contacteer:
Ik vermoed dat je dat allemaal in een formulier heb steken? Dus normaal POST je die dingen naar de volgende pagina. Op de volgende pagina kan je dan die info opvragen via $_POST['categorie_id'] (kan via een knopje op de PHP-werkbalk).
Ik kan nu niet meteen kijken, maar ik dacht dat je in de query-builder kon zeggen dat de variabele voor een bepaald veld uit MySQL uit de POST-data moest komen.
In code zou het er dan zo uitzien:
Ik heb hier nu wel niet de juiste veldnamen en zo gebruikt, maar dat zie je wel wat jij moet hebben
Ik kan nu niet meteen kijken, maar ik dacht dat je in de query-builder kon zeggen dat de variabele voor een bepaald veld uit MySQL uit de POST-data moest komen.
In code zou het er dan zo uitzien:
Code: Selecteer alles
$sql_catalog = "SELECT * FROM table WHERE product_id = ".$_POST['product_id'].";";
Ik heb hier nu wel niet de juiste veldnamen en zo gebruikt, maar dat zie je wel wat jij moet hebben
hallo meon,
ik versta uw uitleg wel maar het lukt hier niet.
Ik heb dan nog lang moeten zoeken waar ik kon redirecten. Het is gewoon op de rode lijnen klikken om de eigenschappen van het form te bekijken.
Ik was eerst met post bezig maar dan kreeg ik op de redirect pagina in mijn browser niet te zien wat er nu geselecteerd was.
Gebruik ik echter op de aanmeldingspagina de get functie dan krijg ik op
de redirect pagina nu wel bovenaan het volgende te zien.
http://localhost/vhdr2/index.php?select ... =aanmelden
select = 3 en ik heb inderdaad de 3de categorie geselecteerd, en dit wordt correct aangepast naar 1,2,of 3
Dus ik vermoed dat de get moet worden gebruikt of vergis ik me hier en dat ik eventueel nog iets moet ingeven bij parameters
Maar het is mogelijk dat ik dit volledig verkeerd zie natuurlijk ??
ik versta uw uitleg wel maar het lukt hier niet.
Ik heb dan nog lang moeten zoeken waar ik kon redirecten. Het is gewoon op de rode lijnen klikken om de eigenschappen van het form te bekijken.
Ik was eerst met post bezig maar dan kreeg ik op de redirect pagina in mijn browser niet te zien wat er nu geselecteerd was.
Gebruik ik echter op de aanmeldingspagina de get functie dan krijg ik op
de redirect pagina nu wel bovenaan het volgende te zien.
http://localhost/vhdr2/index.php?select ... =aanmelden
select = 3 en ik heb inderdaad de 3de categorie geselecteerd, en dit wordt correct aangepast naar 1,2,of 3
Dus ik vermoed dat de get moet worden gebruikt of vergis ik me hier en dat ik eventueel nog iets moet ingeven bij parameters
Maar het is mogelijk dat ik dit volledig verkeerd zie natuurlijk ??
ik wist niet dat dreamweaver nu ook PHP kon genereren en heb dus ook geen zicht op wat voor code die aanmaakt, maar denk ook aan error handling als je je variabelen via de url doorgeeft:
http://localhost/vhdr2/index.php?select=Squirtle&aanmelden=aanmelden
en meer van dat fraais moeten opgevangen worden, net zoals numerieke IDs die niet in je DB bestaan
http://localhost/vhdr2/index.php?select=Squirtle&aanmelden=aanmelden
en meer van dat fraais moeten opgevangen worden, net zoals numerieke IDs die niet in je DB bestaan
via dreamweaver heb ik het nog steeds niet aan de praat gekregen.
Via het post commando geeft hij gewoon categorie_id= 1 door ook al selecteer ik in de listbox categorie 2 of 3.
Ik zal wel nog iets verkeerds doen maar wat.
Via het post commando geeft hij gewoon categorie_id= 1 door ook al selecteer ik in de listbox categorie 2 of 3.
Ik zal wel nog iets verkeerds doen maar wat.
listbox ingezet en een submit knop.
Van deze pagina moet de categorie_id doorgegeven worden aan de 2 de pagina om in de sql query te worden gebruikt
aanmelden.php
Van deze pagina moet de categorie_id doorgegeven worden aan de 2 de pagina om in de sql query te worden gebruikt
aanmelden.php
Code: Selecteer alles
<?php require_once('Connections/testdatabase.php'); ?>
<?php
mysql_select_db($database_testdatabase, $testdatabase);
$query_rsaanmelden = "SELECT categorie_id, categorie_naam FROM categories";
$rsaanmelden = mysql_query($query_rsaanmelden, $testdatabase) or die(mysql_error());
$row_rsaanmelden = mysql_fetch_assoc($rsaanmelden);
$totalRows_rsaanmelden = mysql_num_rows($rsaanmelden);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="623" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="623" height="30"><form name="form1" method="post" action="producten.php">
<p>
<select name="select">
<?php
do {
?>
<option value="<?php echo $row_rsaanmelden['categorie_id']?>"><?php echo $row_rsaanmelden['categorie_naam']?></option>
<?php
} while ($row_rsaanmelden = mysql_fetch_assoc($rsaanmelden));
$rows = mysql_num_rows($rsaanmelden);
if($rows > 0) {
mysql_data_seek($rsaanmelden, 0);
$row_rsaanmelden = mysql_fetch_assoc($rsaanmelden);
}
?>
</select>
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form></td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($rsaanmelden);
?>
ik heb hier nu tijdelijk in de selectie query opgegeven:
select ... from producten where categorie_id=1. Probeer ik hier een variabele in te geven dan geeft dreamweaver me een error en verdwijnt de hele query.
producten.php
Of toch iets in de aard
Maar het lijkt er op dat deze $_POST[categorie_id]; ?>"; nooit wordt doorgegeven
select ... from producten where categorie_id=1. Probeer ik hier een variabele in te geven dan geeft dreamweaver me een error en verdwijnt de hele query.
producten.php
Code: Selecteer alles
<?php require_once('Connections/testdatabase.php'); ?>
<?php
mysql_select_db($database_testdatabase, $testdatabase);
$query_rsproducten = "SELECT producten.product_id, producten.product_naam, producten.product_aantal, producten.product_prijs FROM producten WHERE producten.categorie_id = 1";
$rsproducten = mysql_query($query_rsproducten, $testdatabase) or die(mysql_error());
$row_rsproducten = mysql_fetch_assoc($rsproducten);
$totalRows_rsproducten = mysql_num_rows($rsproducten);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
}
-->
</style></head>
<body>
<table width="787" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="787" height="268"><table width="776" border="1">
<?php do { ?>
<tr>
<td width="161"><?php echo $row_rsproducten['product_id']; ?></td>
<td width="182"><?php echo $row_rsproducten['product_naam']; ?></td>
<td width="185"><?php echo $row_rsproducten['product_aantal']; ?></td>
<td width="220"><?php echo $row_rsproducten['product_prijs']; ?></td>
</tr>
<?php } while ($row_rsproducten = mysql_fetch_assoc($rsproducten)); ?>
</table></td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($rsproducten);
?>
Volgens mij moet er dus komen;
in de query bovenaan:
producten.product_prijs FROM producten WHERE producten.categorie_id = <?php $_POST[categorie_id]; ?>";
Of toch iets in de aard
Maar het lijkt er op dat deze $_POST[categorie_id]; ?>"; nooit wordt doorgegeven
de namen van de variabelen die je binnen krijgt zijn deze van je FORM ITEMS
uit je aanmelden.php:
geef ofwel deze select box een meer zinvolle naam (bvb. categorie_id), ofwel haal je gewoon 'select' op uit je POST array ipv 'categorie_id':
als het niet duidelijk is dan zeg je het maar
uit je aanmelden.php:
Code: Selecteer alles
<select name="select">
geef ofwel deze select box een meer zinvolle naam (bvb. categorie_id), ofwel haal je gewoon 'select' op uit je POST array ipv 'categorie_id':
Code: Selecteer alles
$_POST[select]
als het niet duidelijk is dan zeg je het maar
dacht dat het niet meer uitmaakte
toen ik enkele weken terug aan een module in PHP-Nuke lag te prutsen bleek deze zowel $row['veldnaam'] als $row[veldnaam] te aanvaarden
toen ik enkele weken terug aan een module in PHP-Nuke lag te prutsen bleek deze zowel $row['veldnaam'] als $row[veldnaam] te aanvaarden
Squirtle schreef:dacht dat het niet meer uitmaakte
toen ik enkele weken terug aan een module in PHP-Nuke lag te prutsen bleek deze zowel $row['veldnaam'] als $row[veldnaam] te aanvaarden
Aanvaarden ja, maar wellicht afh van je setup krijg je leuke notices in je logs