Ik heb deze code:

<html>

<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ridder Hein</title>
</head>

<body bgcolor="#FEF8DF" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0" link="#FEF8DF" vlink="#FEF8DF" alink="#FEF8DF">

<table border="0" width="800" id="table1" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td height="20" colspan="3">
<p align="center"><b><font face="Verdana" size="5">Ridder Hein</font></b></td>
</tr>
<tr>
<td width="200" align="left" valign="bottom" rowspan="2">
<img border="0" src="logo.gif" width="200" height="119"></td>
<td width="600" height="11" colspan="2" bgcolor="#000055">
<font face="Verdana" color="#FEF8DF" size="2"><a href="index.php">Home</a>&gt; <a href="medewerker.php">Medewerker</a>&gt;
<a href="#">Bewerken</a></font></td>
</tr>
<tr>
<td width="599" height="569" valign="top" bgcolor="#FFFFFF" style="border: 3px double #000055; " id="middenframe">
<?php

ini_set( 'display_errors' , 1 );
error_reporting( E_ALL );

include("config.php");
if(is_numeric($_GET['MEDNR'])){

if($_SERVER['REQUEST_METHOD'] == "POST") {
if($_POST['MEDNAAM'] != "" || $_POST['AFDNR'] !=""){

$query = "UPDATE MEDEWERKERS SET MEDNAAM='".addslashes($_POST['MEDNAAM'])."', AFDNR='".addslashes($_POST['AFDNR'])."' WHERE MEDNR='".$_GET['MEDNR']."'";
$result = mysql_query($query) or die( mysql_error());

if($result){
echo "Al u gegevens zijn met succes opgeslagen!";
}else{
echo "Er is iets foutgegaan...";
}

}else{
echo"Je hebt niet alle velden ingevuld, ga terug";
}

}else{




$sql = "SELECT * FROM MEDEWERKERS WHERE MEDNR='".$_GET['MEDNR']."'";
$res = mysql_query($sql) or die(mysql_error());
$rij = mysql_fetch_array($res);

$MEDNAAM = $rij['MEDNAAM'];
$AFDNR = $rij['AFDNR'];

$MEDNR=$_GET['MEDNR'];

echo "<form action='?MEDNR=$MEDNR' method=\"post\">";
echo "Bewerken medewerker:<br> ";
echo "MEDNAAM: <input name=\"MEDNAAM\" id=\"MEDNAAM\" type=\"text\" value=\"$MEDNAAM\"><br>";
echo "AFDELING:";
$Sql2 = "SELECT AFDNAAM, AFDNR FROM AFDELINGEN";
$Result = mysql_query($Sql2) or die(mysql_error());

echo '

<select name="AFDNR">';

while ($Row = mysql_fetch_assoc($Result))
{
echo "<option value='".$Row['AFDNR']."'>";

echo $Row['AFDNAAM'];

echo "</option>";
}
echo '
</select>
';

echo "<input type=\"submit\" value=\"save\" name=\"submit\">";
echo "</form>";

}}else{
echo "Het opgegeven id is geen cijfer...";
}
?>
</td>
</tr>
</table>

</body>

</html>

Maar op de 1 of andere manier haalt hij wél de mogelijke waarden voor de dropdown op maar selecteert hij niet de juiste waarde. WAt zit er fout?
Kun je ook aangeven waar het fout gaat? Het is mij niet helemaal duidelijk wat er nu gebeurd en wat er zou moeten gebeuren. Is het soms de update query die fout gaat? En wat gaat er fout? Echo de queries ook eens, dat maakt vaak een hoop duidelijk.
Update gaat ged, probleem is dat de waarden die opgehaald worden in AFDELINGEN wel weergegeven worden (de drop down wordt gevuld met de goede waarden) maar de drop down zou de goede moeten selecteren maar hij selecteert nu niets en pakt dan dus automatisch de bovenste.....
maar hij selecteert nu niets en pakt dan dus automatisch de bovenste.....
En in welke stuk van je script is deze code terug te vinden? Ik zie nergens iets van 'selected="selected" ' staan, laat staan dat er ergens een vergelijking wordt gedaan. Dan is hier niet zo gek dat er niets gebeurd.

Oplossing: Ontbrekende code alsnog gaan schrijven.
Dit is de code voor de dropdown:

echo '

<select name="AFDNR">';

while ($Row = mysql_fetch_assoc($Result))
{
echo "<option value='".$Row['AFDNR']."'>";

echo $Row['AFDNAAM'];

echo "</option>";
}
echo '
</select>
';

Maar ben echt nog niet erg thuis in PHP dus eerlijk gezegd zou ik niet weten hoe :$
Met dit stukje code maak je inderdaad de dropdownlist aan, duidelijk. Maar, waar moet de reeds aanwezige waarde vandaan komen die standaard is geselecteerd? De enige die dat weet, ben jij.

Zodra je dat gegeven hebt, kun je dit vergelijken met $Row['AFDNR']. Komen deze 2 gegevens overeen, dan echo je bij je option nog even: selected="selected"
Uhm, in de dropdown komen allemaal waarden van AFDNR uit AFDELINGEN. Als in de tabel MEDEWERKERS AFDNR overeenkomt met een van die waarden moet hij geselecteerd worden.
En? Is het inmiddels gelukt om deze vergelijking te maken in je php-code?

Het stelt niet veel voor, hooguit 3 regeltjes, maar ik ga het niet voor je schrijven. Daar leer je niets van.
Nee, is me nog niet gelukt :$

Krijg het niet voor mekaar omdat ik het echt niet snap.

Wil je het niet schrijven mét uitleg??? :$
Je wilt 2 dingen met elkaar vergelijken, welke dingen? Zet die vergelijking eens in een stukje code. Op basis van het resultaat beslis je dan of je 'selected="selected" ' gaat echoen.

Dit is nu al meerdere keren gezegd, ik krijg alleen een beetje de indruk dat je geen zin hebt om zelf een stukje code te schrijven. Ik hoop dat ik het mis heb.

Veel succes, je zult het nu zelf moeten doen.
Dit:

$Sql2 = "SELECT AFDNAAM, AFDNR FROM AFDELINGEN";
$Result = mysql_query($Sql2) or die(mysql_error());

echo '

<select name="AFDNR">';

while ($Row = mysql_fetch_assoc($Result))
{
echo "<option value='".$Row['AFDNR']."'>";

echo $Row['AFDNAAM'];

echo "</option>";
}
echo '
</select>
';

echo "<input type=\"submit\" value=\"save\" name=\"submit\">";
echo "</form>";

}}else{
echo "Het opgegeven id is geen cijfer...";
}


Wordt dan:

$Sql2 = "SELECT A.AFDNAAM, A.AFDNR, M.MEDNR FROM AFDELINGEN A, MEDEWERKERS M";
$Result = mysql_query($Sql2) or die(mysql_error());

echo '

<select name="AFDNR">';

while ($Row = mysql_fetch_assoc($Result))
{
echo "<option value='".$Row['AFDNR']."'>";

if (A.AFDNR==M.AFDNR){
echo '
<option selected>$Row"['M.AFDNR']"</option> ';


echo $Row['AFDNAAM'];

echo "</option>";
}
echo '
</select>
';


Maar dat is dus niet goed want dan krijg ik foutmeldingen :(

Reageren