Hey,

Ik ben bezig met een database waarin je product prijzen kan ingeven. Deze bestaat uit een paar velden. In deze velden kies ik de productnaam en doormiddel van een knop "update" worden dan de velden die bij dit product horen geupdate. Alleen als ik op update heb gedrukt.. wordt mijn pagina herladen en staat de productnaam weer op de eerste die in de select voorkomt. Check bijvoorbeeld als je tomaat kiest op www.2fresh.nl en dan op update drukt.. dan schier die weer terug naar aardbei. Hoe kan ik dit tegen gaan?

Mijn code:


<?php
include("db.php");
?>

<html>
<head>
<title>Stad/regio</title>
</head>
<body>
<?php

if(isset($_POST['add']))
{
$query3 = "INSERT INTO `prijzen` ( `id` , `stad` , `datum` , `productsoort` , `producttype` , `kiloprijs` , `herkomst` )
VALUES (NULL ,'$_POST[stad]', '$_POST[datum]', '$_POST[productnaam]', '$_POST[producttype]', '$_POST[prijs]', '$_POST[herkomst]')";
mysql_query($query3) or die('Error, insert query failed');
}

else

{
?>

<form method="post">
	<table>
		<tr>
			<td>Stad/regio</td>
			<td><input type="text" name="stad" value="stad" size="40"></td>
		</tr>
		<tr>
			<td>Datum</td>
			<td><input type="text" name="datum" value="datum" size="40"></td>
		</tr>
		<tr>
			<td>Soort</td>
			<td><select name="productnaam">
<?php
$query = 'SELECT DISTINCT productnaam FROM producten;';
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {?>
			<option value="<?php echo $row['productnaam'];?>"><?php echo $row['productnaam'];?></option>
<?php }
?>
</select></td><td><input name="update" type="submit" id="update" value="Update"></td>
		</tr>
<tr>
			<td>Type</td>
			<td><select name="producttype">
<?php
if(isset($_POST['update']))
{
$var = $_POST['productnaam'];
$query1 = "SELECT * FROM producten WHERE productnaam = '$var';";
$result1 = mysql_query($query1);
while ($row1 = mysql_fetch_array($result1)) {
?>
			<option value="<?php echo $row1['producttype'];?>"><?php echo $row1['producttype'];?></option>
<?php }} ?>
</select></td>
		</tr>
		<tr>
			<td>Prijs per kilo €</td>
			<td><input type="text" name="prijs" value="post" size="40"></td>
		</tr>
		<tr>
			<td>Herkomst</td>
			<td><input type="text" name="herkomst" value="post" size="40"></td>
		</tr>
		<tr> 
<td width="100">&nbsp;</td>
<td><input name="add" type="submit" id="add" value="Add New User"></td>
</tr>
	</table>
</form>
<?php
echo "$query3";
echo "$query1";
}
?>
</body>
</html>


Oftewel het gekozen productnaam moet na update "selected" zijn..

Alvast bedankt!

while ($row = mysql_fetch_array($result)) {?>
            <option selected="<?php ($row["productnaam"]==$_POST["productnaam"])? "SELECTED" : "" ?>" value="<?php echo $row['productnaam'];?>"><?php echo $row['productnaam'];?></option>
<?php }

Dat is de niet nette oplossing (omdat je productnaam (hopelijk) variabel is)

Deze constructie kun je echter beter maken met een hiddenfield met het productid omdat je productnaam variable is en je id niet
Als ik nu bijvoorbeeld tomaat kies en ik doe update dan komt er witlof te staan??
Dan heb jij ergens een foutje zitten denk ik ;) Want de laatste keer dat ik keek was dat niet het zelfde :P
Jacco schreef op 08.02.2008 10:45
Dan heb jij ergens een foutje zitten denk ik ;) Want de laatste keer dat ik keek was dat niet het zelfde :P


Wat was niet hetzelfde? de productnaam?
Tomaat en witlof is niet het zelfde DHU :P

Kijk eens in de bron van je pagina, zoek je select op en post die even.

<?php
$query = 'SELECT DISTINCT productnaam FROM producten;';
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {?>
            <option selected="<?php ($row["productnaam"]==$_POST["productnaam"])? "SELECTED" : "" ?>" value="<?php echo $row['productnaam'];?>"><?php echo $row['productnaam'];?></option>



Zo heb ik hem nu ingevoerd
Kijk eens in de bron van je pagina, zoek je select op en post die even.


Om mezelf maar even te quoten
haha sorry!! ik dacht mn select uit mn database
<select name="productnaam">
<?php
$query = 'SELECT DISTINCT productnaam FROM producten;';
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {?>
            <option selected="<?php ($row["productnaam"]==$_POST["productnaam"])? "SELECTED" : "" ?>" value="<?php echo $row['productnaam'];?>"><?php echo $row['productnaam'];?></option>
<?php }
?>
</select>
Jacco schreef op 08.02.2008 10:54
Kijk eens in de bron van je pagina, zoek je select op en post die even.


Om mezelf maar even te quoten


Praat ik chinees :)? Heb het over de bron in je browser. Kijk daar even of de values wel kloppen bij de items

Reageren