Initiele waarde dynamische drop-down list

Pagina: 1
Acties:

  • Pakjebakmeel
  • Registratie: September 2003
  • Laatst online: 04-01 04:06
Ik probeer een informatie-beheer front-end te ontwikkelen voor het bedrijf waar ik voor werk, echter loop ik tegen een probleem aan waar ik niet uit kom. Ook google bied niet bepaald zinnige oplossingen :/

Ik heb een nieuw record formulier gemaakt in dreamweaver met een dynamisch drop-down menu (deze wordt gevuld met waardes uit een tabel; dit gaat prima. Je kiest een waarde in de drop down en submitten maar. no problemo.

Echter, ik heb ook een update formulier gemaakt waarmee je de record zou kunnen updaten (vrij standaard allemaal).

Wat ik nu wil is dat de initiele waarde van de drop-down de waarde is die momenteel in de huidige record staat. Bij tekstvelden lukt dit wel, kom je op de update pagina en dan zijn alle velden ingevuld. Kun je wat wijzigingen aanbrengen en het formulier submitten. Het drop-down menu staat altijd op de eeste alfabetische waarde; hoe krijg ik het nu voor elkaar dat deze de 'huidige record waarde' laat zien als initiele waarde :( ?

Dit is vast een newb vraag maar ik kom er nie uit :X

  • weebl
  • Registratie: Juni 2002
  • Laatst online: 13:23

weebl

YARR!

Pakjebakmeel schreef op woensdag 19 juli 2006 @ 10:46:
Ik probeer een informatie-beheer front-end te ontwikkelen voor het bedrijf waar ik voor werk, echter loop ik tegen een probleem aan waar ik niet uit kom. Ook google bied niet bepaald zinnige oplossingen :/

Ik heb een nieuw record formulier gemaakt in dreamweaver met een dynamisch drop-down menu (deze wordt gevuld met waardes uit een tabel; dit gaat prima. Je kiest een waarde in de drop down en submitten maar. no problemo.

Echter, ik heb ook een update formulier gemaakt waarmee je de record zou kunnen updaten (vrij standaard allemaal).

Wat ik nu wil is dat de initiele waarde van de drop-down de waarde is die momenteel in de huidige record staat. Bij tekstvelden lukt dit wel, kom je op de update pagina en dan zijn alle velden ingevuld. Kun je wat wijzigingen aanbrengen en het formulier submitten. Het drop-down menu staat altijd op de eeste alfabetische waarde; hoe krijg ik het nu voor elkaar dat deze de 'huidige record waarde' laat zien als initiele waarde :( ?

Dit is vast een newb vraag maar ik kom er nie uit :X
Ik heb laatst zoiets gemaakt in ASP. Ik ga het even voor je opzoeken, en dan vertel ik je zo hoe ik het opgelost heb.

Edit:

Ok, ik heb het. Hier is een snippet uit de code van een pagina waarmee je de gegevens van een record aan kan passen. Ik weet niet of je ASP kan, maar het spreekt redelijk voor zich denk ik.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%
        If rs_subj.EOF then
            Response.Write "There are no subjects found in the database"
        else
            Response.Write "<select name='subject'>"
            'Response.Write "<option value=' '><Select a subject</option>"
        Do While NOT rs_subj.EOF
                
                subj = rs_issue.fields ("subj_name")
                
                Response.Write "<option  value='"& rs_subj.fields ("subj_name") &"'"
                if rs_subj.fields ("subj_name") = subj then 
                   Response.Write "selected" 
                end if  
                Response.Write ">"& rs_subj.fields ("subj_name") &"</option>"
        
        rs_subj.movenext
        loop
            Response.Write "</select>"
        end if
%>


Wat ie dus in feite doet is dit:

Hij vult de dropdown met alle waardes uit de tabel. En bij elke waarde kijkt ie in een andere tabel (degene met de waardes die we aan passen) of ie geselecteerd is of niet. Zo ja, dan plakt ie er 'selected="selected"' achter, zo niet, dan doet ie niks.

Dit is te zien aan het if...else statement in de loop.

Hoop dat je zoiets ook kan maken in de taal die jij gebruikt.

[ Voor 55% gewijzigd door weebl op 19-07-2006 11:11 ]


  • Pakjebakmeel
  • Registratie: September 2003
  • Laatst online: 04-01 04:06
weebl schreef op woensdag 19 juli 2006 @ 10:56:
[...]


Ik heb laatst zoiets gemaakt in ASP. Ik ga het even voor je opzoeken, en dan vertel ik je zo hoe ik het opgelost heb.
Da's mooi :> ik werk ook in ASP _/-\o_

graag, ik ben het al een paar keer tegengekomen maar heb het nooit op kunnen lossen en gebruikte uiteindelijk maar weer een invulveld :r

[ Voor 22% gewijzigd door Pakjebakmeel op 19-07-2006 10:59 ]


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Wat je moet doen is het volgende...
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$query = "SELECT `id`, `waarde` FROM `table1`";
$result = mysql_query($query);

echo '<select name="dropdown">'
while($row = mysql_fetch_assoc($result))
{
    if($row['waarde'] == $_POST['veld1'])
    {
        echo '<option value="'. $row['id'] .'" selected="selected">'. $row['waarde'] .'</option>';
    }
    else
    {
        echo '<option value="'. $row['id'] .'">'. $row['waarde'] .'</option>';
    }
}
echo '</select>';
Zoiets moet je dus gaan maken, heb het nu wat versimpeld; zit geen foutafvanging in, gePOSTe variabelen worden niet gecontroleerd, noem het maar op... Het gaat om de if-lus in de while loop... Weet alleen niet hoe je zoiets moet maken in ASP, daar mijn ASP kennis 0,0 is... :)

Mocht je trouwens geen xHTML gebruiken (wat bovenstaande output) dan moet je selected="selected" aanpassen en er alleen selected van maken.

[ Voor 35% gewijzigd door CH4OS op 19-07-2006 11:52 ]


  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Gaan we er van uit dat de vraag geldt voor de update-pag of ?
  1. <select ...>
  2. <option value="{CATID}">{CATNAME}</option>
  3. <option value="{CATID}"> </option>
  4. query die alle mogelijke waarden voor deze dropdown uitschrijft, bij voorkeur alfabetisch
  5. </select>
{CATID} en {CATNAME} velden uit je select-query.

[ Voor 21% gewijzigd door moozzuzz op 19-07-2006 11:05 ]


  • weebl
  • Registratie: Juni 2002
  • Laatst online: 13:23

weebl

YARR!

Pakjebakmeel schreef op woensdag 19 juli 2006 @ 10:58:
[...]


Da's mooi :> ik werk ook in ASP _/-\o_

graag, ik ben het al een paar keer tegengekomen maar heb het nooit op kunnen lossen en gebruikte uiteindelijk maar weer een invulveld :r
Ik ging er eigenlijk vanuit dat je een lookup tabel hebt, met alle mogelijke waardes erin. En een tabel die de gegevens van de gebruiker (???) opslaat. Zo heb ik het ook, en ik combineer dus twee recordsets met elkaar.

Mocht jij het anders hebben, dan moet ik even hard na gaan denken :)

  • André
  • Registratie: Maart 2002
  • Laatst online: 11-02 14:19

André

Analytics dude

Wat is nu het probleem nog? De selected="selected" toevoegen zorgt voor de juiste selectie, dat moet dus wel lukken. Als het fout gaat in de ASP moet het topic naar de buren van Programming

  • Pakjebakmeel
  • Registratie: September 2003
  • Laatst online: 04-01 04:06
Whooohooo, rustig aan ;) ik ben net begonnen met ASP..

even verder uitleggen: er zijn 2 tabellen:

1 language tabel; hierin zitten unique ID's correspondered met languages (deze vult de drop-down)
1 main tabel; hierin zit info over applicatie's. In het language veld moet het corresponderende ID worden gepost van de language in de languages tabel.(deze moet worden geupdate met het corresponderende ID van de taal uit de languages tabel.)

Vervolgens heb ik een view aangemaakt in SQL 2000 die kijkt welk ID er staat in de main table en daarvoor de corresponderende language laat zien.. Zelfde gedaan voor Offices..:

Afbeeldingslocatie: http://img84.imageshack.us/img84/4486/untitledbk4.th.png

Voorbeeld.. Stel de languages tabel ziet er zo uit:

ID LANGUAGE
1 german
2 dutch
3 english

en er word een record toegevoed in de main_table en iemand kiest in het drop-down menu 'dutch', dan wordt er in het 'lang' veld in de main_table '2' gepost. Als ik nu naar mn edit form ga voor die specifieke record moet de initiele value van die drop-down '2' / 'dutch' laten zien in de lijst.

[ Voor 37% gewijzigd door Pakjebakmeel op 19-07-2006 11:54 ]


  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Pakjebakmeel schreef op woensdag 19 juli 2006 @ 11:46:
Als ik nu naar mn edit form ga voor die specifieke record moet de initiele value van die drop-down '2' / 'dutch' laten zien in de lijst.
Volgens mij is dit ondertussen beantwoord :Y)

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Pakjebakmeel schreef op woensdag 19 juli 2006 @ 11:46:
en er word een record toegevoed in de main_table en iemand kiest in het drop-down menu 'dutch', dan wordt er in het 'lang' veld in de main_table '2' gepost. Als ik nu naar mn edit form ga voor die specifieke record moet de initiele value van die drop-down '2' / 'dutch' laten zien in de lijst.
Je moet eerst controleren (via een SQL-query) welke taal ingesteld is. Daarna doorloop je alle talen... En controleer je de ID's van de talen... Als deze overeenkomen, dan voeg je in je <option value=x>y</option> selected="selected" (of alleen selected als je HTML gebruikt) toe, waardoor je <option value="x" selected(="selected")>y</option>... :) Sim-pel.

Zie mijn eerdere posting voor een PHP voorbeeld... :)

  • André
  • Registratie: Maart 2002
  • Laatst online: 11-02 14:19

André

Analytics dude


  • Pakjebakmeel
  • Registratie: September 2003
  • Laatst online: 04-01 04:06
Ik ben absoluut geen ASP guru maar ik ga hiermee aan de slag!

dank!

[ Voor 8% gewijzigd door Pakjebakmeel op 19-07-2006 12:06 ]


  • Pakjebakmeel
  • Registratie: September 2003
  • Laatst online: 04-01 04:06
Uiteindelijk is de volgende werkende situatie ontstaan :) :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<select name="lang">
          <%
While (NOT languages.EOF)
%>
          <option value="<%=(languages.Fields.Item("ID").Value)%>" <%If (Not isNull(view.Fields.Item("softlang").Value)) Then If (CStr(languages.Fields.Item("ID").Value) = CStr(view.Fields.Item("softlang").Value)) Then Response.Write("selected='selected'") : Response.Write("")%> ><%=(languages.Fields.Item("lang").Value)%></option>
          <%
  languages.MoveNext()
Wend
If (languages.CursorType > 0) Then
  languages.MoveFirst
Else
  languages.Requery
End If
%>
        </select>


Dan jullie allen voor de reacties!

[ Voor 36% gewijzigd door Pakjebakmeel op 19-07-2006 16:34 ]

Pagina: 1