Avatar billede mik28 Seniormester
12. december 2004 - 15:47 Der er 23 kommentarer og
1 løsning

Huske en værdi

Hej Eksperter,

Jeg har en side hvor man skal vælge nogle forskellige ting. Når man har valgt en ting skal dette gemmes. Mit problem er bare at jeg ikke kan få det til at virke. Kan jeg lave noget smart hvor jeg anvender nogle sessionvariable?


<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">

<html>

<%@ page language="java" import="java.util.*,java.sql.*,util.*" %>

<%
String navn = (String)session.getAttribute("navn");
out.println(navn);
%>
<head>
<title>Admlogin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="./style/style.css">
<script language="JavaScript" src="./script/script.js"></script>
</head>
<body style="background-image:url('../billeder/bt3u.jpg');background-repeat: no-repeat;">
<div>Velkommen til Adm modulet</div>
<%

String produktgruppe_select          = request.getParameter ("produktgruppe_select");
String under_produktgruppe_select    = request.getParameter ("under_produktgruppe_select");
 
Databaseforbindelsemysqlprepared d = new Databaseforbindelsemysqlprepared("jdbc:mysql://192.168.1.11/DB?user=USER&password=PASS", "com.mysql.jdbc.Driver");
       
    try {
   
    Vector vi = new Vector();
           
    ResultSet rs    = d.select("SELECT id,gruppenavn FROM produktgrupper", vi);
       
        %><form name="produktgruppe"><select onchange="document.produktgruppe.submit();" name="produktgruppe_select"><option value="">Vælg Produktgruppe<option value="">----------------<%
        while(rs.next()) {
        %>
        <option value="<%= rs.getString("id") %>"><%= rs.getString("gruppenavn") %>       
        <%
        }
        %></select></form><%   
    } catch (SQLException s) {
    System.out.println("<h3>SQL fejl: " + s.toString() + " "
    + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
    }       
   
    try {
    Vector vi1 = new Vector();
   
    vi1.addElement(produktgruppe_select);       
    out.println(produktgruppe_select);
 
    ResultSet rs1    = d.select("SELECT p.id, p.under_produktnavn from under_produktgruppe p, under_produktgruppe_produkt_rel pr where pr.under_produktgruppe_id = ? and pr.produkt_id = p.id", vi1);
    %>   
       
        <form name="under_produktgruppe"><select onchange="document.under_produktgruppe.submit();" name="under_produktgruppe_select">
        <option value="">Vælg underproduktgruppe<option value="">----------------
        <%
        while(rs1.next()) {
        %><option value="<%= rs1.getString("id") %>"><%= rs1.getString("under_gruppenavn") %>   
        <%
        }
    %></select></form><%
   
    } catch (SQLException s) {
    System.out.println("<h3>SQL fejl: " + s.toString() + " "
    + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
    }

d.close();   
%>

</body>
</html>
Avatar billede arne_v Ekspert
12. december 2004 - 16:05 #1
Du kan da sagtens gemme i session:

session.setAttribute(navn, objekt);
Avatar billede arne_v Ekspert
12. december 2004 - 16:06 #2
Og jeg kan ikke helt gennemskue din kode. Kan du forklare hvad den skulle gøre
og hvad den gør forkert ?
Avatar billede mik28 Seniormester
12. december 2004 - 16:09 #3
Man kan se det her. Det er meningen at man først skal vælge produktgruppe også bagefter underproduktgruppe

http://web-oasen.dk/bjorn/index/admlogin.jsp
Avatar billede arne_v Ekspert
12. december 2004 - 16:12 #4
Du behøver vel ikke engang gemme i sessionen.

Din JavaScript laver en submit.

Koden skal vel bare sørge for at sætte den valgte i submit som den default valgte
når siden vises igen ?
Avatar billede arne_v Ekspert
12. december 2004 - 16:15 #5
<form name="produktgruppe"><select onchange="document.produktgruppe.submit();" name="produktgruppe_select"><option value="">Vælg Produktgruppe<option value="">----------------<%
        while(rs.next()) {
        %>
        <option value="<%= rs.getString("id") %>"<%=rs.getString("id").equals(produktgruppe_select)?" SELECTED":""%>><%= rs.getString("gruppenavn") %>     
        <%
        }
        %></select></form>
Avatar billede mik28 Seniormester
12. december 2004 - 16:34 #6
hmmm det kan jeg ikke få til at virke
Avatar billede mik28 Seniormester
12. december 2004 - 16:36 #7
Det skal ende med at når man har valgt alle ting så bliver der lavet det korekte opslag i min database :-)
Avatar billede arne_v Ekspert
12. december 2004 - 16:39 #8
Nu ville jeg først løse provlemet med at den glemte valget af gruppe.

Næste trin bliver at få undergruppe til at virke.

Men du kan ikke få SELECTED klistret rigtigt på ?
Avatar billede mik28 Seniormester
12. december 2004 - 16:50 #9
Det er når jeg vælger undergruppe at det går galt
Avatar billede arne_v Ekspert
12. december 2004 - 16:58 #10
SELECTED virker vis også nu.

Næste skridt er så under grupperne.

Den finder tilsyneladende ingen matches.

Har du prøvet at udføre SQL sætningen manuelt ?
Avatar billede mik28 Seniormester
12. december 2004 - 17:03 #11
Hvis du vælger plast og gummi så gør den.
Avatar billede mik28 Seniormester
12. december 2004 - 17:05 #12
Jeg har ikke puttet så meg et i databasen endnu
Avatar billede mik28 Seniormester
12. december 2004 - 17:08 #13
Det som jeg tænker mig er at sætte en sessionvariable til at bruge som argument på de enkelte sql udtryk
Avatar billede mik28 Seniormester
12. december 2004 - 17:13 #14
problemet er jo at produktgruppe_select bliver null når jeg submitter den anden form
Avatar billede mik28 Seniormester
12. december 2004 - 17:18 #15
Jeg tror det er bedst at ligge det lidt fra sig. Jeg kigger på det igen i morgen. Tak for hjælpen :-)
Avatar billede mik28 Seniormester
12. december 2004 - 20:45 #16
Det hele virker sådan set. Jeg er bare meget interesseret i at de værdier som man vælger bliver stående i boksene, sådan at man kan se hvad det er man har valgt. Prøv at vælge plast og gummi, også Stabilisatorer- Therm-Chek® i den anden. Så skulle du gerne se et resultat i den sidste boks. Det er som sagt meningen at når man har valgt det hele så bliver resultatet vist i en tabel.

http://web-oasen.dk/bjorn/index/admlogin.jsp?produktgruppe_select=1
Avatar billede arne_v Ekspert
12. december 2004 - 21:02 #17
Du skal have lavet det samme for underkategorien som vi lavede for hovedkategorien
16:12:54 og 16:15:48
Avatar billede mik28 Seniormester
12. december 2004 - 21:03 #18
Det har jeg prøvet.

<form name="under_produktgruppe"><select onchange="document.under_produktgruppe.submit();" name="under_produktgruppe_select"><option value="">Vælg underproduktgruppe<option value="">----------------<%
        while(rs1.next()) {
        %>
        <option value="<%= rs1.getString("id") %>"<%=rs1.getString("id").equals(under_produktgruppe_select)?" SELECTED":""%>><%= rs1.getString("under_produktnavn") %>       
        <%
        }
        %></select></form><%
Avatar billede mik28 Seniormester
12. december 2004 - 21:48 #19
Kan jeg gøre noget i den her stil. Altså hvis produktgruppe_select er null så sæt den værdi til (String)session.getAttribute("produktgruppe_select_s");         

String produktgruppe_select          = request.getParameter ("produktgruppe_select");
String under_produktgruppe_select    = request.getParameter ("under_produktgruppe_select");

session.setAttribute("produktgruppe_select_s", produktgruppe_select);
session.setAttribute("under_produktgruppe_select_s", under_produktgruppe_select);

if(produktgruppe_select==null)
    {
    out.println("produktgruppe_select==null");
    produktgruppe_select  = (String)session.getAttribute("produktgruppe_select_s");
    out.println(produktgruppe_select);
    }
Avatar billede mik28 Seniormester
13. december 2004 - 07:33 #20
Så lykkes det endelig at få det til at virke efter hensigten :-) Det er ikke helt optimalt men det virker da nogenlunde.

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">

<html>

<%@ page language="java" import="java.util.*,java.sql.*,util.*" %>

<%
String navn = (String)session.getAttribute("navn");
%>
<head>
<title>Admlogin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="./style/style.css">
<script language="JavaScript" src="./script/script.js"></script>
</head>
<body style="background-image:url('../billeder/bt3u.jpg');background-repeat: no-repeat;">
<div>Velkommen til Adm modulet</div>
<%
out.println("Bruger som er logget på: <b>"+navn+"</b>");

String produktgruppe_select          = request.getParameter ("produktgruppe_select");
String under_produktgruppe_select    = request.getParameter ("under_produktgruppe_select");

if(produktgruppe_select==null)
    {
  produktgruppe_select  = (String)session.getAttribute("produktgruppe_select_s");
    }

if(under_produktgruppe_select==null)
    {
  under_produktgruppe_select  = (String)session.getAttribute("under_produktgruppe_select_s");
  }

Databaseforbindelsemysqlprepared d = new Databaseforbindelsemysqlprepared("jdbc:mysql://192.168.1.11/DB?user=USER&password=PASSWORD", "com.mysql.jdbc.Driver");
       
    try {
   
    Vector vi = new Vector();
           
    ResultSet rs    = d.select("SELECT id,gruppenavn FROM produktgrupper", vi);
       
        %>
        <form name="produktgruppe"><select onchange="document.produktgruppe.submit();" name="produktgruppe_select"><option value="">Vælg Produktgruppe<option value="">----------------<%
        while(rs.next()) {
        %>
        <option value="<%= rs.getString("id") %>"<%=rs.getString("id").equals(produktgruppe_select)?" SELECTED":""%>><%= rs.getString("gruppenavn") %>        
        <% session.setAttribute("produktgruppe_select_s", produktgruppe_select);
        }
        %></select></form><%   
    } catch (SQLException s) {
    System.out.println("<h3>SQL fejl: " + s.toString() + " "
    + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
    }       
   
    try {
    Vector vi1 = new Vector();
   
    vi1.addElement(produktgruppe_select);       
    out.println("Produktgruppe valgt: "+produktgruppe_select);
 
    ResultSet rs1    = d.select("SELECT p.id, p.under_produktnavn from under_produktgruppe p, under_produktgruppe_produkt_rel pr where pr.under_produktgruppe_id = ? and pr.produkt_id = p.id", vi1);
    %>   
       
        <form name="under_produktgruppe"><select onchange="document.under_produktgruppe.submit();" name="under_produktgruppe_select"><option value="">Vælg underproduktgruppe<option value="">----------------<%
        while(rs1.next()) {
        %>
        <option value="<%= rs1.getString("id") %>"<%=rs1.getString("id").equals(under_produktgruppe_select)?" SELECTED":""%>><%= rs1.getString("under_produktnavn") %>
        <% session.setAttribute("under_produktgruppe_select_s", under_produktgruppe_select);
        }
        %></select></form><%
   
    } catch (SQLException s) {
    System.out.println("<h3>SQL fejl: " + s.toString() + " "
    + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
    }

try {
    Vector vi2 = new Vector();
   
    vi2.addElement(under_produktgruppe_select);       
    out.println("Produktgruppe valgt: "+under_produktgruppe_select);
 
    ResultSet rs2    = d.select("SELECT p.produkt_navn from under_produkter p, produkt_i_underproduktgruppe_produkter_rel pr where pr.produkt_id = ? and pr.id = p.id", vi2);
    %>   
       
        <form name="under_under_produktgruppe"><select onchange="document.under_under_produktgruppe.submit();" name="under_under_produktgruppe_select"><option value="">Vælg underproduktgruppe<option value="">----------------<%
        while(rs2.next()) {
        %>
        <option value=""><%= rs2.getString("produkt_navn") %>       
        <%
        }
        %></select></form><%
   
    } catch (SQLException s) {
    System.out.println("<h3>SQL fejl: " + s.toString() + " "
    + s.getErrorCode() + " " + s.getSQLState() + "</h3>");
    }



d.close();   
%>

</body>
</html>
Avatar billede mik28 Seniormester
13. december 2004 - 07:42 #21
Tanken er at jeg sætter en sessionvariable, som jeg så henter hvis værdien som bliver sendt fra form er null, altså hvis den allerede er valgt. Hvis den ændre sig så bliver sessionvariablen også ændret. Det fede ville være hvis jeg kunne overfører en valgt variabel til den næsten form, således at når man vælger plast og gummi bliver den sendt som en hidden værdi.
Avatar billede arne_v Ekspert
13. december 2004 - 23:36 #22
Ah. Nu fangede jeg den. Over kategpri valget kommer ikke med ved submit af under
kategori, fordi det er en anden form.

Tja - så er session eller et hidden felt jo løsningen.

Du kan sagtens tilføje et hidden felt til under kategori formen, hvis der er
valgt en over kategori.
Avatar billede mik28 Seniormester
13. december 2004 - 23:39 #23
Jeg tror nok jeg har fattet hvordan jeg skal gøre det :-) Tusinde tak for hjælpen endnu engang. Jeg sætter meget pris på det.

http://web-oasen.dk/bjorn/index/admlogin.jsp
Avatar billede mik28 Seniormester
30. december 2004 - 08:51 #24
Jeg rydder lige lidt op :-)
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