Dropdown haalt waarde niet op
<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>> <a href="medewerker.php">Medewerker</a>>
<a href="#">Bewerken</a></font></td>
</tr>
<tr>
<td width="599" height="569" valign="top" bgcolor="#FFFFFF" style="border: 3px double #000055; " id="middenframe">
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?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...";
}
?>
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.....
Quote:
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.maar hij selecteert nu niets en pakt dan dus automatisch de bovenste.....
Oplossing: Ontbrekende code alsnog gaan schrijven.
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 :$
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.
Het stelt niet veel voor, hooguit 3 regeltjes, maar ik ga het niet voor je schrijven. Daar leer je niets van.
Krijg het niet voor mekaar omdat ik het echt niet snap.
Wil je het niet schrijven mét uitleg??? :$
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.
$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 :(
Vraagje: Waarom heb je die query aangepast? Je beschikt al over $AFDNR = $rij['AFDNR']; , vervolgens haal je alle mogelijke afdelingnummers op (deed je al!), het enige wat je hoeft te doen is deze 2 gegevens met elkaar vergelijken. Meer is het niet.
Wanneer je moeite hebt met de logica van een systeem/script, schrijf het dan eerst eens op papier. En noteer dan ook waar de verschillende gegevens vandaan moeten komen. Dan krijg je vanzelf een mooi plaatje dat je zo in php-code kunt uitwerken.
En dan de juiste $vars tussen de if() zetten.
$Sql2 = "SELECT A.AFDNAAM, A.AFDNR, M.MEDNR, M.AFDNR FROM AFDELINGEN A, MEDEWERKERS M WHERE M.AFDNR=A.AFDNR";
$Result = mysql_query($Sql2) or die(mysql_error());
echo '<select name="AFDNR">';
while ($Row = mysql_fetch_assoc($Result))
{
echo '<option value="' . $Row['AFDNR'] . '"';
if($AFDNR == $AFDNR)
{
echo ' selected';
}
echo '>' . $Row['AFDNAAM'] . '</option>';
}
echo '</select>';
Maar ik krijg dan dat hij constant de onderste kiest maar niet de goede :$
Kijk eens in de html broncode van die [uitgevoerde] pagina !
Mischien valt je dan wat op, . . . . en grootte kans dat je het snapt en zelf kan oplossen !
Gewijzigd op 01/01/1970 01:00:00 door - Roland -
Tsjah, daarin staat idd dat de onderste geselecteerd wordt jah maar dat wist ik al en het verklaart voor mij nogal weinig :$
en dan jouw code:
Verder blijf ik me afvragen waarom je die query ($sql2) hebt aangepast. Daar mankeerde volgens mij niets aan. Heb het script overigens niet getest.
Ga eens gestructureerd debuggen. Kijk wat er her en der gebeurd.
AFDNAAM, AFDNR dus weinig keuze dan :$
Ga nu even terug naar je oorspronkelijke code. Daar haalde je alle benodigde gegevens al op, je hoeft ALLEEN maar een vergelijking te maken. Dus niet ook nog met een andere query gaan lopen kloten!
Ga eens uitzoeken wat je nu waar ophaalt en wat de namen van de diverse variabelen zijn. Ik mag toch aannemen dat je wel enigszins doorhebt waar je mee bezig bent. Of niet?
Ik heb zo ongeveer elke variabele die ik kon bedenken al geprobeerd nadat de combinatie die voor mij t meest logisch leek (AFDNR uit MEDEWERKERS en AFDNR uit AFDELINGEN) niet goed bleek te zijn
$rij['AFDNR'] uit de medewerkers en $Row['AFDNR'] uit de afdelingen...
Deze heb je aangemaakt nadat je de desbetreffende queries hebt gedraaid en de boel met mysql_fetch_assoc() hebt verwerkt. Dat moet je toch wel uit die 30 regels (relevante) code kunnen halen.