Avatar billede clevzter Nybegynder
18. juli 2002 - 00:09 Der er 14 kommentarer og
1 løsning

Fra DB til <select>

Jeg ved intet om ASP, men har scoret mig det er script til et community:

<select name="modtager">
<option></option>
  <%
  set rs = Conn.Execute("select * from bruger")
  Do until rs.eof
  navn = rs("brugernavn")
  %>
<option value="<%=navn%>"><%=navn%></option>
  <%
  rs.movenext
  loop
  rs.close
  set rs = nothing
  %>
</select>

Det hiver alle brugernavne ud af en database og giver dem hver en <option> i <select>'en.

Er det muligt at lave et <option>, som har værdien 'alle brugere' og som hedder alle?
Avatar billede eagleeye Praktikant
18. juli 2002 - 00:13 #1
Du sætter bare denne ind

<option value="alle brugere">Alle</option>


Hvis den skal være øverst sætter du den efter denne:

<select name="modtager">
<option value="alle brugere">Alle</option>
Avatar billede clevzter Nybegynder
18. juli 2002 - 00:19 #2
det jeg mente var om man kan lave scriptet, så den henter alle brugernavne fa databasen og sætter dem ind i et <option>

således at modtageren bliver alle brugere fra databasen
Avatar billede eagleeye Praktikant
18. juli 2002 - 00:26 #3
så skal du lave en streng som du ligger brugerne ind i, men så kommer den til sidst i listen.

<select name="modtager">
<option></option>
  <%
  set rs = Conn.Execute("select * from bruger")
  strBrugerNavn = ""
  Do until rs.eof
    navn = rs("brugernavn")
    if strBrugerNavn <> "" then strBrugerNavn = strBrugerNavn & ","
    strBrugerNavn = strBrugerNavn & navn
  %>
<option value="<%=navn%>"><%=navn%></option>
  <%
  rs.movenext
  loop
  rs.close
  set rs = nothing
  %>
<option value="<%=strBrugerNavn%>">Alle</option>
</select>
Avatar billede eagleeye Praktikant
18. juli 2002 - 00:27 #4
Var det sådan noget du tænkte på?
Avatar billede clevzter Nybegynder
18. juli 2002 - 00:30 #5
ja, det ser ud til at være det rigtige

Nu skulle der så være et option der så således ud:
<option value="bruger1, bruger2, bruger3....osv">Alle</option>

eller hvad?
Avatar billede eagleeye Praktikant
18. juli 2002 - 00:33 #6
Ja det var meningen.
Avatar billede clevzter Nybegynder
18. juli 2002 - 00:36 #7
godt så! gad så vide om den kan finde ud af at sende beskeden til flere brugere seppereret med komma.
Avatar billede clevzter Nybegynder
18. juli 2002 - 00:40 #8
det virker ik

kan jeg få dig til at kigge på mail-scriptet og se om du kan få det lavet så man kan sende en besked til alle brugere?
Avatar billede eagleeye Praktikant
18. juli 2002 - 00:44 #9
Du kan lave en SQL sætning som bruger IN som kan tage en komma liste..

hvis du har en SQL idag: WHERE brugernavn = '" & request.form("modtager") & "'"

Så kan du lave den med IN: WHERE brugernavn IN (" & nameListe & ")"

Så skal du bare havde ' sat omkring alle navne inden de komme i SQL sætningen det kan gøres på samme side som laver komma listen ville jeg tror. Så denne linie:
strBrugerNavn = strBrugerNavn & navn

Bliver til:
strBrugerNavn = strBrugerNavn & "'" & navn & "'"


--------
Ellers kan det laves så du bruger replace så komma blvier lavet om til ','

Eks som også virker med enkelt modtager, så skal du bruge linie udne at lave den om:
strBrugerNavn = strBrugerNavn & navn

nameListe  = "'" & replave(request.form("modtager"),",","','") & "'"


Håber det hjælper dig lidt, jeg smutter i seng nu, jeg kigger ind igen i morgen aften bliver det nok først.
Avatar billede eagleeye Praktikant
18. juli 2002 - 00:45 #10
Sidste eks skal så hvade SQL med: WHERE brugernavn IN (" & nameListe & ")"
Avatar billede clevzter Nybegynder
18. juli 2002 - 00:52 #11
som sagt ved jeg intet om server-side, så alt det der virker en smule uoverskueligt for mig.

kan jeg ik lige paste hele scriptet, så du kan se om det kan lade sig gøre med din SQL sætning?
Avatar billede clevzter Nybegynder
18. juli 2002 - 01:01 #12
jeg går oz i seng og tjekker op i morgen aften...
Avatar billede clevzter Nybegynder
18. juli 2002 - 01:02 #13
men du kan da lige få hele scriptet her:

<HTML><HEAD><link href="style.css" rel="stylesheet" type="text/css"><TITLE>clevzterCommunity</TITLE></HEAD><BODY>
<h1>Indbakke</h1>
<center><hr>
<a href="default.asp">Forside</a> | <a href="mailbox.asp">Indbakke</a> | <a href="bruger.asp">Indstillinger</a> | <a href="profil.asp?brugernavn=<%=session("brugernavn")%>">Din profil</a> | <a href="bruger.asp?mode=logaf">Log af</a>
<hr></center><br>
                <%
                'Forskellig menu alt efter om man er logget ind eller ej
                if session("brugernavn") <> "" then
                %>
                <%

Response.Buffer = True

mode = Request.QueryString("mode")

Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb")
%>
<% if mode = "" then
                       
                       
                        'Opbygger recordset
                        set rs = Conn.Execute("select * From mail where mailModtager = '" & Session("brugernavn") & "' order by mailDato desc")
                        %>
                        <b>Klik på emnet for at læse en meddelelse</b><br><br>
                        <table border="0">
                            <tr>
                                <td bgcolor="#DDDDDD">Afsender</td>
                                <td bgcolor="#DDDDDD">Emne</td>
                                <td bgcolor="#DDDDDD">Dato</td>
                                <td bgcolor="#DDDDDD">Slet</td>
                                <td bgcolor="#DDDDDD"></td>
                            </tr>
                            <% if rs.eof or rs.bof then %>
                            <tr>
                                <td colspan="3" align="center">Ingen meddelelser</td>
                            </tr>
                            <% else
                                Do until rs.eof %>
                                <tr>
                                    <td><%=rs("mailAfsender")%></td>
                                    <td><a href="mailbox.asp?mode=read_mail&mailid=<%=rs("mailid")%>"><%=rs("mailEmne")%></a></td>
                                    <td><%=rs("mailDato")%></td>
                                                                        <td><a href="mailbox.asp?mode=delete_email&mailid=<%=rs("mailid")%>"><img src="images/mailbo1.gif" border="0"></a></td>
                                    <td>
                                        <%
                                        'Forskelligt billede alt efter om emailen er læst/ulæst
                                        if rs("mailread") <> True then %>
                                        <img src="images/mail_unread.gif">
                                        <% else %>
                                        <img src="images/mail_read.gif">
                                        <% end if %>
                                    </td>
                                </tr>
                                <% rs.movenext
                                loop
                            end if %>
                        </table>
                       
                        <br>
                        <br>
                        <a href="mailbox.asp?mode=ny_email">Ny meddelelse</a>
                       
                <%
                rs.close
                end if %>
               
                <% if mode = "read_mail" then
                   
                        'Hiver info om emailen frem:
                        Set rs = Conn.Execute("select * from mail where mailid = " & Request.QueryString("mailid"))
                        Conn.Execute("update mail set mailread = True")
                       
                        'Tjecker om emailen tilhører brugeren der vil læse den
                        if rs("mailmodtager") <> Session("brugernavn") then
                            Response.Redirect("inbox.asp")
                        end if
                %>
                        <table border="0">
                            <tr><td colspan="2" bgcolor="#000000"><font color="#FFFFFF"><b>Læs Post</b></font></td></tr>
                            <tr>
                                <td bgcolor="#DDDDDD"><b>Afsender</b></td>
                                <td bgcolor="#DDDDDD"><%=rs("mailAfsender")%></td>
                            </tr>

                            <tr>
                                <td bgcolor="#DDDDDD"><b>Emne</b></td>
                                <td bgcolor="#DDDDDD"><%=rs("mailEmne")%></td>
                            </tr>

                            <tr>
                                <td bgcolor="#DDDDDD"><b>Dato</b></td>
                                <td bgcolor="#DDDDDD"><%=rs("mailDato")%></td>
                            </tr>
                           
                            <tr>
                                <td colspan="2">&nbsp;</td>
                            </tr>
                            <tr>
                                <td colspan="2"><%=rs("mailBesked")%></td>
                            </tr>
                        </table>
                        <br>
                        <a href="mailbox.asp">Indbakke</a> | <a href="mailbox.asp?mode=delete_email&mailid=<%=rs("mailid")%>">Slet</a> | <a href="mailbox.asp?mode=ny_email">Ny meddelelse</a>               
                <% end if %>
               
               
                <% if mode = "delete_email" then
               
                    'Sletter email
                    Set rs = Conn.Execute("select * from mail where mailid = " & Request.QueryString("mailid"))
                       
                        'Tjecker om mailen tilhører brugeren
                        if rs("mailModtager") = Session("brugernavn") then
                        conn.Execute("delete from mail where mailid = " & Request.QueryString("mailid") & "")
                        end if
                       
                    Response.Redirect("mailbox.asp")
                end if %>
               
                <% if mode = "ny_email" then
                   
                   
                    'Hvis brugeren har valgt og sende en email:
                    if Request("modtager") <> "" AND Request("emne") <> "" AND Request("besked") <> "" then
                       
                            'Lægger værdierne ned i variabler
                            modtager = Request.Form("modtager")
                            emne = Server.HTMLEncode(Request.Form("emne"))
                            besked = Server.HTMLEncode(Request.Form("besked"))
                           
                            Set rs = Server.CreateObject("ADODB.Recordset")
                            sql = "select * from mail"
                            rs.open sql, conn, 1, 3
                           
                            rs.addnew
                            rs("mailmodtager") = modtager
                            rs("mailafsender") = Session("brugernavn")
                            rs("mailEmne") = emne
                            rs("mailbesked") = besked
                            rs("mailDato") = Now()
                            rs.update
                           
                            rs.close
                            set rs = Nothing
                            Response.Redirect("mailbox.asp")
                    end if
                    %>
               
                <b>Skriv ny meddelelse</b><br>
                <form method="post" action="mailbox.asp?mode=ny_email">
               
                Modtager<br>
                <select name="modtager">
                            <option></option>
                            <%
                            'Hiver alle brugerne ud i en select boks
                            set rs = Conn.Execute("select * from bruger")
                            Do until rs.eof
                            navn = rs("brugernavn")
                            %><option value="<%=navn%>"><%=navn%></option>
                            <% rs.movenext
                            loop
                            rs.close
                            set rs = nothing
                            %>
                            </select><br><br>
               
                Emne<br>
                <input type="text" name="emne"><br><br>
               
                Besked<br>
                <textarea name="besked" rows="5"></textarea><br><br>
               
                <input type="submit" class="submit" value="Send">
               
                <% end if %>
<p><br><hr><a href="java script:history.back()">Tilbage</a></p>

                <% else %>
Du er ikke logget ind<p>
<a href="login.asp">login</a> eller <a href="tilmeld.asp">bliv medlem</a>
                <% end if %>
</form>
</BODY></HTML>
Avatar billede clevzter Nybegynder
18. juli 2002 - 21:13 #14
uha, det er langt!

så vidt jeg kan se, så skal den bare tjekke efter en mail der er sendt til 'Alle' når den tjekker efter mails sendt til brugernavnet.
--------------------------------------------------------------
set rs = Conn.Execute("select * From mail where mailModtager = '" & Session("brugernavn") & "' order by mailDato desc")
--------------------------------------------------------------
Her kan man vel sige at den skal tjekke efter mailModtager = 'brugernavn' ELLER 'Alle'

Da jeg ik kender til ASP kan jeg ikke lave det, men kan du (eagleeye) eller en anden ik lave noget?
Avatar billede eagleeye Praktikant
18. juli 2002 - 21:20 #15
Ja.. altså med OR ??  jeg er ikke helt med men det skriver man på denne måde:


set rs = Conn.Execute("select * From mail where mailModtager = '" & Session("brugernavn") & "' OR mailModtager = 'alle' order by mailDato desc")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester