Dropdown haalt waarde niet op

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Erwin

Erwin

20/06/2006 23:09:00
Quote Anchor link
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">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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?
 
PHP hulp

PHP hulp

16/11/2024 22:45:51
 
Frank -

Frank -

20/06/2006 23:32:00
Quote Anchor link
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.
 
Erwin

Erwin

20/06/2006 23:51:00
Quote Anchor link
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.....
 
Frank -

Frank -

20/06/2006 23:59:00
Quote Anchor link
Quote:
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.
 
Erwin

Erwin

21/06/2006 00:07:00
Quote Anchor link
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 :$
 
Frank -

Frank -

21/06/2006 02:05:00
Quote Anchor link
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"
 
Erwin

Erwin

21/06/2006 08:21:00
Quote Anchor link
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.
 
Frank -

Frank -

21/06/2006 14:12:00
Quote Anchor link
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.
 
Erwin

Erwin

22/06/2006 00:02:00
Quote Anchor link
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??? :$
 
Frank -

Frank -

22/06/2006 00:25:00
Quote Anchor link
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.
 
Erwin

Erwin

22/06/2006 09:06:00
Quote Anchor link
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 :(
 
Frank -

Frank -

22/06/2006 14:02:00
Quote Anchor link
"want dan krijg ik foutmeldingen"... En mijn glazen bol is beslagen!

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.
 
- SanThe -

- SanThe -

22/06/2006 15:07:00
Quote Anchor link
Zoiets?
En dan de juiste $vars tussen de if() zetten.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
echo '<select name="AFDNR">';
while ($Row = mysql_fetch_assoc($Result))
{

    echo '<option value="' . $Row['AFDNR'] . '"';
    if($ene_var == $andere_var)
    {

        echo ' selected';
    }

    echo '>' . $Row['AFDNAAM'] . '</option>';
}

echo '</select>';
?>
 
Erwin

Erwin

23/06/2006 11:09:00
Quote Anchor link
Ik heb nu dit:

$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 :$
 
- Roland -

- Roland -

23/06/2006 11:25:00
Quote Anchor link
Tip !

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 -
 
Erwin

Erwin

23/06/2006 12:35:00
Quote Anchor link
Tsjah, daarin staat idd dat de onderste geselecteerd wordt jah maar dat wist ik al en het verklaart voor mij nogal weinig :$
 
Frank -

Frank -

23/06/2006 14:10:00
Quote Anchor link
Zoek de verschillen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($ene_var == $andere_var) ?>

en dan jouw code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($AFDNR == $AFDNR) ?>

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.
 
Erwin

Erwin

23/06/2006 17:42:00
Quote Anchor link
Tsjah, ik weet ook wel dat dat anders is maar hij zegt dat ik 2 variabelen moet invullen dus ik vul die 2 in en volgens jou hoef ik allen deze op te halen:
AFDNAAM, AFDNR dus weinig keuze dan :$
 
Frank -

Frank -

23/06/2006 17:50:00
Quote Anchor link
Zoek de verschillen.... $ene_var en $andere_var. Wat gebruik jij: $ene_var en $ene_var. Oftewel $a == $a of $b == $b, en zo kun je er nog wel een paar bedenken. Er is niemand die beweert dat jij 2 DEZELFDE variabelen met elkaar moet vergelijken. Je kunt zelf toch ook wel bedenken dat dit geen succes wordt?

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?
 
Erwin

Erwin

23/06/2006 19:53:00
Quote Anchor link
Het is goed hoor, laat maar zitten....

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
 
Frank -

Frank -

23/06/2006 20:05:00
Quote Anchor link
Ik ben echt te goed voor deze wereld...

$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.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.