Avatar billede martinsorensen Nybegynder
15. maj 2007 - 23:46 Der er 5 kommentarer

Tjekke om checkbox er tjekket

Hej alle. Jeg er igang med at lave en webshop, hvor jeg nu er kommet til indkøbskurven :) MEEN jeg er nu løbet ind i problemer. Jeg har følgende kode, som henter info omkring varerne i DB, og udskriver dem, med tilhørende checkbokse. Ideen er så at jeg vil lave det sådan at man tjekker af hvilke varer man vil have, og så i et andet servlet tjekke hvilke der er tjekket og så hente den info fra DB, og derefter ligge det ned i en session som så kan bruges som indkøbskurv ....... osv.



<form name="profile" method="get" action="../servlet/zheng.examples.form.CheckProcessing">
<table width="500" border="0">
<tr>
<td bgcolor="#99CCFF"><strong>Check if true</strong></td>
<td>

<input type="checkbox" name="havePC" value="Yes">
Yes, I have a computer</td>
</tr>
<tr>
<td valign="top" bgcolor="#99CCFF"><strong>Skills </strong></td>
<td><p>
<input name="skill" type="checkbox" value="html"> HTML
<input name="skill" type="checkbox" value="java">Java
<input name="skill" type="checkbox" value="linux"> Linux
<input name="skill" type="checkbox" value="asp">ASP
<input name="skill" type="checkbox" value="xml">XML<br>

<input name="skill" type="checkbox" value="javascript">JavaScript
<input name="skill" type="checkbox" value="jsp">JSP
<input name="skill" type="checkbox" value="php">PHP
<input name="skill" type="checkbox" value="dotnet">
.Net
<input name="skill" type="checkbox" value="sql">SQL

</p>
</td>
</tr>
</table>
<p>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</p>
</form>


HÅBER I KAN HJÆLP! :)

Mvh

Martin Sørensen
Avatar billede martinsorensen Nybegynder
15. maj 2007 - 23:47 #1
hov ikke den kode ;)

det er denne her:

/*
* showDB.java
*
* Created on 15. maj 2007, 01:51
*/



import java.awt.event.ActionEvent;
import java.io.*;
import java.net.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.servlet.*;
import javax.servlet.http.*;

/**
*
* @author Martin CBS
* @version
*/
public class showGoods extends HttpServlet {
   

    private String varenummer;
    private String pris;
    private String antal;
    private String varenavn;
    private String ende = ",-";
             
    ArrayList Orders = new ArrayList();

   
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
     
        showGoods(out, request);
       
        out.close();
    }

   
    public void showGoods (PrintWriter out, HttpServletRequest request)
        {
   
          out.println("<FORM method=\"POST\" ACTION=\"sureorder\">");
               
                //Start tabel
                out.println("<table border=\"1\">");
                out.println("<thead>");
                out.println("<tr>");
                out.println("<th>Varenummer:</th>");
                out.println("<th>Pris:          </th>");
                out.println("<th>Antal på lager:</th>");
                out.println("<th>Varenavn:      </th>");
                out.println("</tr>");
                out.println("</thead>");
                out.println("<tbody>");
                //hent maks antal prod
                ArrayList Orders = hentVarer();
               
               
                try {
        Connection con = connectTilDB();
          Statement stmt = con.createStatement();
               
   
           
            for(int i = 1; i<= Orders.size(); i++)
                {
                   
            String query = "select varenummer, pris, antal, varenavn from varer where varenummer = " + '"' + i + '"';
           
            ResultSet rs = stmt.executeQuery(query);
                       
                if (rs.next()) {
                //id = rs.getString("id");
                varenummer = rs.getString("varenummer");
                pris = rs.getString("pris");
                antal = rs.getString("antal");
                varenavn = rs.getString("varenavn");
               
                }
                //Print alle produkterne
                out.println("<tr>");
               
                out.println("<td>" + varenummer + "</td>");     
               
                out.println("<td>" + pris + " " + ende + "</td>"); 
               
                out.println("<td>" + antal + "</td>");
               
                out.println("<td>" + varenavn + "</td>");
               
                out.println("<td><input type=\"checkbox\" name=\"order" + i + "\" /></td>");
               
                out.println("</tr>");
               
                }
               
               
               
        con.close();     
               
                }//try
     
               
      catch(SQLException e) {
          System.err.println("SQLException: " + e.getMessage());
      }
                   
              //slut tabel
                out.println("</table>");
                out.println("<INPUT TYPE=\"SUBMIT\" VALUE=\"Tilføj markerede\">");
                //slut form
                out.println("</FORM>");   
                 
  }
   
   
   
    public ArrayList hentVarer() {
      ArrayList orders = new ArrayList();
      try {
        Connection con = connectTilDB();
          Statement stmt = con.createStatement();
          //henter alle varer
          String query = "select varenummer from varer";
          ResultSet rs = stmt.executeQuery(query);
          while (rs.next()) {
              String ord = rs.getString("varenummer");
              orders.add(ord);
        }
                }
       
                catch(SQLException e) {
          System.err.println("SQLException: " + e.getMessage());
      }
       
      return orders;   
      }
   
    private Connection connectTilDB()
    {
       
        Connection con = null;
       
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/adminlogin","root","");
        } catch(java.lang.ClassNotFoundException e) {
            System.err.println("ClassNotFoundException: " + e.getMessage());
        } catch(SQLException e) {
            System.err.println("SQLException: " + e.getMessage());
        }
        return con;
    }
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    /** Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    /** Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>

}
Avatar billede jakoba Nybegynder
16. maj 2007 - 05:31 #2
Hvis der kommer en parameter med samme navn som den checkbox, så blev den checkbox mærket af.
Avatar billede jakoba Nybegynder
16. maj 2007 - 05:39 #3
Og det betyder at efter HTML reglerne SKAL hver checkbox have sit eget unikke navn. I din kode kalder du dem allesammen name="skill" og den går ikke.

Hvis du ønsker at holde sammen på dem kan du evt kalde dem "skill00", "skill01", "skill02", ...

Eller måske (siden du troede eet navn var nok) bruger du dem et sted hvor der ikke bør vælges mere end een af de checkboxe. I så fald bør du istedet bruge radioboxe (rundt feldt) of type='radio'.
Med radiobokse skal alle i hver gruppe have det samme navn, og brovseren sørger så for at brugeren ikke får lov til at markere mere end een af dem. Det der returneres er så value="xxx" værdien i den valgte radioboks.

mvh JakobA
Avatar billede martinsorensen Nybegynder
29. oktober 2007 - 15:13 #4
jacob smid svar :)
Avatar billede jakoba Nybegynder
29. oktober 2007 - 23:43 #5
ok
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