[ASP] Listbox (database) selecteer problemen

Pagina: 1
Acties:

  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Mijn probleem is als volgt. Vanuit een SQL database vraag ik een lijst op met namen. Deze namen worden in een listbox getoond. Ik wil dat mensen in deze listbox namen kunnen selecteren en dat deze waardes vervolgens naar de database worden terug gestuurd.

Via deze code vraag ik de namen op uit de database:
code:
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
<select SIZE="10" NAME="Servers" MULTIPLE>
<option SELECTED>Select server(s)</option>
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionTimeout = Application("Configuration_ConnectionTimeout")
conn.CommandTimeout = Application("Configuration_CommandTimeout")
conn.Open Application("Configuration_ConnectionString"), _
    Application("Configuration_RuntimeUserName"), _
    Application("Configuration_RuntimePassword")

Set rs = Server.CreateObject ("ADODB.Recordset")
rs.Open "SELECT Servername FROM Servers ORDER BY Servername", conn, _
    1, 3

Do While Not rs.EOF
    Response.Write("<option>")
    Response.Write rs("Servername")
    rs.MoveNext
    Response.Write("</option>")
Loop

rs.Close
Set rs = Nothing

conn.Close
Set conn = Nothing
%>
</select>

Vervolgens wil ik dus dat ik de geselecteerde namen naar een tabel in een database kan terug sturen. De code voor de rest van de velden heb ik al, maar voor dit gedeelte hierboven wil het me niet lukken. Ik probeer het bijvoorbeeld via:
code:
1
Request.Form ("Servers")

Maar dit wil niet lukken. Ik hoop dat mijn probleem duidelijk is. Wie ó wie kan mij uit de brand helpen?

Not trying to pretend the enemy that I am.


Verwijderd

Is
code:
1
2
3
4
5
6
Do While Not rs.EOF
    Response.Write("<option>")
    Response.Write rs("Servername")
    rs.MoveNext
    Response.Write("</option>")
Loop

wel goed?

Volgens mij moet het:
code:
1
2
3
4
5
6
7
Do While Not rs.EOF
    Response.Write("<option>")
    Response.Write rs("Servername")
     
    Response.Write("</option>")
    rs.MoveNext
Loop

zijn...

anders gaat het volgens mij niet goed...toch?

  • Dope-E
  • Registratie: Januari 2001
  • Laatst online: 11-07 12:42

Dope-E

The one and only Dope

Op woensdag 26 juni 2002 13:13 schreef slindenau het volgende:
Is
code:
1
2
3
4
5
6
Do While Not rs.EOF
    Response.Write("<option>")
    Response.Write rs("Servername")
    rs.MoveNext
    Response.Write("</option>")
Loop

wel goed?

Volgens mij moet het:
code:
1
2
3
4
5
6
7
Do While Not rs.EOF
    Response.Write("<option>")
    Response.Write rs("Servername")
     
    Response.Write("</option>")
    rs.MoveNext
Loop

zijn...

anders gaat het volgens mij niet goed...toch?
Dat maakt geen f*** uit!

Wordt de data uit de form wel goed gepost?

twitter.com/curly_sanders


Verwijderd

Op woensdag 26 juni 2002 13:17 schreef Dope-E het volgende:

[..]

Dat maakt geen f*** uit!

Wordt de data uit de form wel goed gepost?
Dat kan ik zo niet zien...dan moet ik de hele form tag zien...met action en method enzo, en als ik jou was zou ik ipv listbox een dropdown menu maken...

en de .asp file van de action...

Voorbeeld van dropdown menu die door een asp pagina word uitgelezen:
www.pp.fragworld.co.uk/asp/keuze.html

keuze.html
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<title>Keuze</title>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form method="post" action="keuze.asp">
  <select name="keuze">
    <option>Kies</option>
    <option>er</option>
    <option>maar</option>
    <option>een</option>
  </select>
<input type="submit" value="Ok">
</form>
</body>
</html>

keuze.asp
code:
1
2
3
4
<%
keuze = Request.Form("keuze")
%>
De keuze die jij maakte was: <%Response.Write keuze%>

En dan kun je met je database script gewoon verdergaan met die variable "keuze"...

Edit: en dan maak je het dropdown menu dus zo...:
code:
1
2
3
4
5
6
7
8
9
10
11
'database troep
<form method="post" action="keuze.asp">
  <select name="keuze">
<%Do While Not rs.EOF
  Response.Write("<option>" & rs('Servername') & "</option>")
  rs.MoveNext
  Loop
%>
  </select>
<input type="submit" value="Ok">
</form>

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39

Scharnout

Meuk

Makkelijkst om dit op te lossen is om je htmlmeuk ff te bekijken. Zie je zo waar het fout gaat.
(view source in je browser dus)

And Bob's your uncle ...


Verwijderd

ik zie dat je een multiple select gebruikt, je zal dus door de output van het formulier heen moeten gaan. Je zou dit kunnen doen met een array, hier even een snel geschreven stukje code:
code:
1
2
3
4
5
6
dim aNumbers
aNumbers = split(request.form("Servers"),", ")
    
for i = LBound(aNumbers) to UBound(aNumbers)
    ' doe je database ding.....
Next

  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Van deze laatste posting kan ik geen wijs worden, sorry... Misschien kun je dit nog iets uitleggen?

Het uitlezen van de database gaat goed. Ik krijg dus gewoon mijn lijstje namen te zijn op mijn pagina. Wat ik nou wil is dat ik dan vervolgens op die pagina uit die lijst met namen (de listbox) een naam kan selecteren en die waarde kan uitlezen. En hoe dat moet in dit geval weet ik niet...! Ik heb dit geprobeerd uit te lezen via
code:
1
Request.Form ("Servers")

maar dit werkte dus niet.

Sorry als ik niet helemaal duidelijk ben in mijn verhaal, maar ik ben ook maar een beginner vrees ik...

Not trying to pretend the enemy that I am.


  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 24-07 10:48
Je moet wel een value aan de optie meegeven. Doorgaans is dit je recordid. Dus <option value=""" & rsRecordset("id") & """>. Nu krijg je de geselecteerde ID's terug bij opvragen.

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


Verwijderd

Op woensdag 26 juni 2002 14:04 schreef Nutcaze het volgende:
Je moet wel een value aan de optie meegeven. Doorgaans is dit je recordid. Dus <option value=""" & rsRecordset("id") & """>. Nu krijg je de geselecteerde ID's terug bij opvragen.
doe je dit niet dan zal de waarde tussen de option-tags worden doorgegeven.

Verwijderd

Op woensdag 26 juni 2002 14:04 schreef Nutcaze het volgende:
Je moet wel een value aan de optie meegeven. Doorgaans is dit je recordid. Dus <option value=""" & rsRecordset("id") & """>. Nu krijg je de geselecteerde ID's terug bij opvragen.
Nee, dit hoeft niet eens, je kunt gewoon de text die uit de database wordt uigelezen doorsturen naar een asp pagina die de text weer in een cell opslaat...

  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Op woensdag 26 juni 2002 14:06 schreef I-eye het volgende:

[..]

doe je dit niet dan zal de waarde tussen de option-tags worden doorgegeven.
En dat wil ik... denk ik. Ik wil de naam die ik selecteer weergeven. En als ik meerdere namen selecteer, dan wil ik dat die allemaal worden weer gegeven.

Not trying to pretend the enemy that I am.


Verwijderd

Op woensdag 26 juni 2002 14:04 schreef Arie het volgende:
Van deze laatste posting kan ik geen wijs worden, sorry... Misschien kun je dit nog iets uitleggen?

Het uitlezen van de database gaat goed. Ik krijg dus gewoon mijn lijstje namen te zijn op mijn pagina. Wat ik nou wil is dat ik dan vervolgens op die pagina uit die lijst met namen (de listbox) een naam kan selecteren en die waarde kan uitlezen. En hoe dat moet in dit geval weet ik niet...! Ik heb dit geprobeerd uit te lezen via
code:
1
Request.Form ("Servers")

maar dit werkte dus niet.

Sorry als ik niet helemaal duidelijk ben in mijn verhaal, maar ik ben ook maar een beginner vrees ik...
Gebruik daarom ook een dropdown menu...de naam van de select gebruik je bij Request.Form("naam") en die geef je aan een variable ( blaat = Request.Form("naam") en die variable kun je weer laten opslaan in database (of gewoon direct zonder variable)

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 24-07 10:48
Hmmm ok dit wist ik niet, maar goed: mocht je een server naam hebben met een komma in de naam wordt dit behoorlijk kut om uit te lezen welke servers zijn gekozen omdat je zoals in een eerdere post is aangegeven de individuele waardes uitleest d.m.v. een split op een komma.

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


Verwijderd

Op woensdag 26 juni 2002 14:09 schreef Arie het volgende:

[..]

En dat wil ik... denk ik. Ik wil de naam die ik selecteer weergeven. En als ik meerdere namen selecteer, dan wil ik dat die allemaal worden weer gegeven.
Hmm ik dacht dat je alleen een waarde wou...dan weet ik het ook niet... :)

  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 24-07 10:48
Heb je wel een <form action="script waar je naartoe submit.asp" method="post">
-- jouw selectbox --

</form>
omheen?

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Nee, want wat ik selecteer in de listbox moet naar een database worden gestuurd. Dat gedeelte heb ik al op poten en dat werkt. Alleen kan ik dus geen (meerdere) waarde(n) opvragen van deze listbox ;(

Not trying to pretend the enemy that I am.


  • Nutcaze
  • Registratie: Oktober 1999
  • Laatst online: 24-07 10:48
Om data te kunnen posten moet er wel een form tag omheen hoor! In het script waar naartoe gepost wordt kun je vervolgens het script gebruiken van hierboven waarin die split staat.

Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.


  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Op woensdag 26 juni 2002 14:29 schreef Nutcaze het volgende:
Om data te kunnen posten moet er wel een form tag omheen hoor! In het script waar naartoe gepost wordt kun je vervolgens het script gebruiken van hierboven waarin die split staat.
Ik heb mijn al bestaande Form tag hoger in mijn source geplaatst en nu werkt het wel. Dat was niet erg slim van me moet ik bekennen, maar ik ben nu eenmaal nog niet zo erg thuis in dit alles. Nu werkt het wel.

Als ik nu een naam selecteer en ik Post, dan krijg ik in mijn database wel de namen te zien. Als ik er meerdere selecteer, dan worden deze automatisch gescheiden door komma's wat wel goed is voor nu denk ik. Alleen krijg ik als ik nu niets selecteer natuurlijk de Option Selected te zien, maar deze zal ik blanco maken.

Dank jullie allemaal! :)


Edit: even wat type foutjes er uit gehaald.

Not trying to pretend the enemy that I am.


Verwijderd

Op woensdag 26 juni 2002 14:26 schreef Arie het volgende:
Nee, want wat ik selecteer in de listbox moet naar een database worden gestuurd. Dat gedeelte heb ik al op poten en dat werkt. Alleen kan ik dus geen (meerdere) waarde(n) opvragen van deze listbox ;(
LOOOL
Hoe wou je nou data laten doorsturen zonder een action op te geven...noob iid :)
Zonder form tag kun je gewoon nix met de gegevens, alleen icm javascript...maar das ook niet geweldig :)
Als het uitlezen van de gegevens gewoon goed werkt dan moet je in de action file een script zetten die de gegevens opslaat in de database...
Pagina: 1