Avatar billede jr40 Nybegynder
03. juni 2007 - 16:26 Der er 9 kommentarer og
1 løsning

Auto input fra db i Dropdown box

Jeg har et kort system hvor man opretter sine kort og kan ændre sine kort, og denne redigerings side har forskellige dropdown boxe og felter.

Jeg har en linje stump som henter alle valg mulighederne frem fra en mappe og ind i en dropdown menu, så man kan vælge imellem forskellige billeder:

<table border="0" width="49" id="table2">
            <tr>
                <td width="43" align="left">
                <p align="center"><font face="Arial"><font size="2">Forside<br>
                <%
Set fso = CreateObject("Scripting.FileSystemObject")
Set folderObject = fso.GetFolder(Server.MapPath("billeder/produkt_billeder"))
Set filer = FolderObject.Files
%></font><select name="forside" size="1" cols="40">
<%For Each File In filer%>
  <option value="<%=File.Name%>"><%=File.Name%></option>
<%Next%>
</select></font><font face="Arial" size="2"><%=rs("forside")%></font></td>
            </tr>
        </table>

Det er en masse billeder som ligger i mappen produkt_billeder, og hver billed hedder noget ala:

1_Stor_Forside.jpg
2_Stor_Forside.jpg
3_Stor_Forside.jpg
osv.

Spørgsmålet:
Men hvordan sætter jeg dropdown menu´en, så den automatisk viser det billed (f.eks. 2_Stor_Forside) som kortet er gemt med fra starten, istedet for dropdown menuen viser det først kort (1_Stor_Forside fra produkt billeder mappen, også kan man ellers side og finde netop lige det billed som man har valgt fra starten... Dette tager ekstra langtid, når det aligevel ikke var i netop den dropdown box man ville ændre noget i.
Avatar billede jr40 Nybegynder
03. juni 2007 - 16:28 #1
Grundet til jeg spørger om dette er, fordi hvergang jeg skal ind og ændre i et kort, så skal jeg finde kortets billed igen, da den ikke har gemt mit korts billed i selve dropdown boxen..

Håber i forstår hvad jeg mener.
Avatar billede ellebaek Nybegynder
03. juni 2007 - 18:20 #2
du kan gøre det med en if... du må ved på en eller anden måde hvilket billede der er gemt sammen med i starten..

fx.

<table border="0" width="49" id="table2">
  <tr>
    <td width="43" align="left">
      <p align="center"><font face="Arial"><font size="2">Forside<br>
      <%
      '***************************************************
      sql = "SELECT forside FROM tabel where id = " & id
      set rsForside = rs.execute(sql)
      '***************************************************
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set folderObject = fso.GetFolder(Server.MapPath("billeder/produkt_billeder"))
      Set filer = FolderObject.Files
      %></font><select name="forside" size="1" cols="40">
      <%For Each File In filer
        if File.Name = rsForside("forside") then
          response.write "<option value=""" & File.Name & """ selected>" & File.Name & "</option>"
        else
          response.write "<option value=""" & File.Name & """>" & File.Name & "</option>"
        end if
      Next%>
      </select></font><font face="Arial" size="2"><%=rs("forside")%></font></td>
  </tr>
</table>

så skal du rette det der står imellem *******'erne, til at være der hvor du henter dit billedenavn ud.. samtidig så skal du rette i denne linie:
if File.Name = rsForside("forside") then
så feltnavnet matcher det felt du har i databasen..

Håber det var forståeligt..
Avatar billede jr40 Nybegynder
03. juni 2007 - 21:33 #3
ellebaek>>> Hvad mener du præcist med det feltnavn.?
Jeg har rettet kode stumpen til dette:
    <td width="43" align="left">
      <p align="center"><font face="Arial"><font size="2">Forside<br>
      <%
      '***************************************************
      sql = "SELECT forside FROM kort where id = " & id
      set rsForside = rs.execute(sql)
      '***************************************************
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set folderObject = fso.GetFolder(Server.MapPath("billeder/produkt_billeder"))
      Set filer = FolderObject.Files
      %></font><select name="forside" size="1" cols="40">
      <%For Each File In filer
        if File.Name = rsForside("forside") then
          response.write "<option value=""" & File.Name & """ selected>" & File.Name & "</option>"
        else
          response.write "<option value=""" & File.Name & """>" & File.Name & "</option>"
        end if
      Next%>
      </select></font><font face="Arial" size="2"><%=rs("forside")%></font></td>
  </tr>
</table>


Også for jeg denne her fejl:
Forside


Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'Execute'

/retkort.asp, line 166


Linje 166=    set rsForside = rs.execute(sql)


Jeg kan fortælle at forside billederne bliver hentet fra denne sti i database: kort>forside

Altså tabel=kort
Og kolonne navnet er: forside

Hvis det kunne hjælpe dig nærmere.?
Avatar billede ellebaek Nybegynder
03. juni 2007 - 21:38 #4
det kunne sagtens hjælpe mig...

<table border="0" width="49" id="table2">
  <tr>
    <td width="43" align="left">
      <p align="center"><font face="Arial"><font size="2">Forside<br>
      <%
      '***************************************************
      sql = "SELECT forside FROM kort where id = " & id
      set rsForside = rs.execute(sql)
      '***************************************************
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set folderObject = fso.GetFolder(Server.MapPath("billeder/produkt_billeder"))
      Set filer = FolderObject.Files
      %></font><select name="forside" size="1" cols="40">
      <%For Each File In filer
        if File.Name = rsForside("forside") then
          response.write "<option value=""" & File.Name & """ selected>" & File.Name & "</option>"
        else
          response.write "<option value=""" & File.Name & """>" & File.Name & "</option>"
        end if
      Next%>
      </select></font><font face="Arial" size="2"><%=rs("forside")%></font></td>
  </tr>
</table>

nu skal du bare vide hvad det er for et kort du er ved at rette.. det er dit id, det skal du tilpasse. og det fejlen betyder er, at du ikke har en connection til databasen ved navn rs.

du må have en connection med et eller andet navn, det skal du sætte i stedet for rs i rs.execute(sql). håber du forstår, for er ret træt efterhånden ;-)
Avatar billede jr40 Nybegynder
03. juni 2007 - 21:53 #5
Må ærlig talt indrømme at det ikke er min stærke side, så har vedhæftet en lille version af min .db hvis det kan hjælpe med en connection:
www.macpack.dk/db.zip
Avatar billede jr40 Nybegynder
03. juni 2007 - 21:57 #6
jeg har en tideligere connection som hedder:
            <%
            Set conn = server.CreateObject("ADODB.Connection")
              conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../db/db.mdb")
            sql = "select * from kort order by beskrivelsestitel asc"
            Set rs = Conn.Execute(sql)
            %>

Men den kan jeg ikke brug i dette her.
Avatar billede ellebaek Nybegynder
04. juni 2007 - 11:11 #7
<table border="0" width="49" id="table2">
  <tr>
    <td width="43" align="left">
      <p align="center"><font face="Arial"><font size="2">Forside<br>
      <%
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set folderObject = fso.GetFolder(Server.MapPath("billeder/produkt_billeder"))
      Set filer = FolderObject.Files
      %></font><select name="forside" size="1" cols="40">
      <%For Each File In filer
        if File.Name = rs("forside") then
          response.write "<option value=""" & File.Name & """ selected>" & File.Name & "</option>"
        else
          response.write "<option value=""" & File.Name & """>" & File.Name & "</option>"
        end if
      Next%>
      </select></font><font face="Arial" size="2"><%=rs("forside")%></font></td>
  </tr>
</table>
Avatar billede jr40 Nybegynder
04. juni 2007 - 17:13 #8
Fandme nice ellebaek...  Nu virker det!!!  Jeg burde give dig points nu, men har et aller sidste spørgsmål som jeg ikke selv kan tricke, så vil høre om du kan klare den i dette her spam, eller om jeg skal lave et nyt spam.?


Spørgsmål:
Jeg har 2 dropdowns her som også hedder (Vælg Menu) og (Vælg Sub Menu).
Det er tekst den henter ud fra min db, og her har jeg det samme problem som med billederne..  Altså jeg skal vælge menu og sub menu hvergang jeg skal ændre i kortet, da den automatisk vælger den tekst i db´en som starter med f.eks. (A), og ikke vælger den som den har fået tildelt..


Kode stumpen:
<select name="menu" size="1" cols="40">
<option>Vælg menu</option>
<%do while not rs3.EOF%>
  <option value="<%=rs3("menunavn")%>"><%=rs3("menunavn")%></option>
<%
rs3.movenext
loop
%>
</select></font><font size="2"> </font></font>
</td>
        <td width="190" align="left">
<font face="Arial" size="2">
<%
sql2 = "select distinct subnavn from menu order by subnavn asc"
Set rs2 = Conn.Execute(sql2)
%>
</font><font face="Arial">
<select name="sub" size="1" cols="40">
<option>Vælg submenu</option>
<%do while not rs2.EOF%>
  <option value="<%=rs2("subnavn")%>"><%=rs2("subnavn")%></option>
<%
rs2.movenext
loop
%>
</select></font></td>
Avatar billede jr40 Nybegynder
24. juni 2007 - 12:18 #9
ellebaek>>>Jeg laver bare et nyt spam til mit andet spørgsmål, så lav et svar og du kan få points.
Avatar billede ellebaek Nybegynder
24. juni 2007 - 12:58 #10
ok... smider et svar her :-)
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