2016-06-23 2 views
-1

私がリストを持って、私は、データベース内のIDを挿入し、リストからオプションを選択して、サーブレットにIDを送信する:リストからIDを取得するには?

これは私がデータ名を送信するJSPで、

<label class="etiqueta">Costumer:</label> 
<% Conexion conex = new Conexion(); 
    String URL = conex.URL; 
    String USERNAME = conex.USERNAME; 
    String PASSWORD = conex.PASSWORD; 
    Connection conexion = null; 
    try { 
     Statement sentencia = null; 
     ResultSet resultado = null; 
     conexion = DriverManager.getConnection(URL, USERNAME, PASSWORD); 
     if (!conexion.isClosed()) { 
      sentencia = conexion.createStatement(); 
      resultado = sentencia.executeQuery("select name,a_Paterno,a_Materno from person where rol='costumer'"); 
      out.println("<select style='width:300px;border:1px;font-family:sans-serif;font-size:16px;'name='cliente'"); 
      out.println("<option>Select costumer</option>"); 
      while (resultado.next()) { 
       String name = resultado.getString("name"); 
       out.println("<option value='" + name + "'>" + name + "</option>"); 
      } 
      out.println("</select>"); 
      conexion.close(); 
     } else { 
      out.println("fallo"); 
     } 
    } catch (Exception e) { 
     out.println("error: " + e); 
     e.printStackTrace(); 
    } 
%> 

//// これは私のサーブレットからのコード

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    doGet(request, response); 
    PrintWriter out = response.getWriter(); 
    //int idcliente = Integer.parseInt(request.getParameter("¿¿¿¿id???")); 
    String fecha = request.getParameter("fecha"); 
    String actividad = request.getParameter("actividad"); 
    double horas = Double.parseDouble(request.getParameter("horas")); 

    out.println("<html>"); 
    out.println("<title></title>"); 
    out.println("Cliente: "+ "\n" +nombreCliente+ " Añadido Correctamente \n"+telefono+ "\n"); 
    out.println("<a href='main.jsp'>Volver</a>"); 
    out.println("</html>"); 

    Consultas con = new Consultas(); 
    con.insertActividad(fecha, actividad, horas); 
} 

答えて

0

あなたが提出したい値はオプションvalue='"+id+"'

の値であることを確認しています選択されたオプションの値を取得するには、サーブレットで210
while(resultado.next()) 
{ 
String name= resultado.getString("name"); 
int id= resultado.getInt("id"); 
out.println("<option value='"+id+"'>"+name+"</option>"); 
} 

は、あなたがこのように実行します。

int idcliente = Integer.parseInt(request.getParameter("cliente")); 

あなたは、解析例外

out.println("<option value ='0'>Select costumer</option>"); 
を回避するために、空のオプションの値= 0を設定することができます

または、request.getParameter("cliente")が空になっていないかどうかを調べてからintに解析します。

+0

ありがとう、兄弟! –

+0

ようこそ。 –

0

あなたのIDは数字ではありません。nameあなたのDBクエリで取得しており、あなたのコンボボックスにvalueを含めています。だから、これは試してみてください。//サーブレット

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    doGet(request, response); 
    PrintWriter out = response.getWriter(); 
    String nombreCliente = request.getParameter("client"); // Nombre seleccionado en la combobox "client" 
    String fecha = request.getParameter("fecha"); 
    String actividad = request.getParameter("actividad"); 
    double horas = Double.parseDouble(request.getParameter("horas")); 

    if (!"NOMBRE_VACIO".equals(nombreCliente)) { 
     out.println("<html>"); 
     out.println("<title></title>"); 
     out.println("Cliente: "+ "\n" +nombreCliente+ " Añadido Correctamente \n"+telefono+ "\n"); 
     out.println("<a href='main.jsp'>Volver</a>"); 
     out.println("</html>"); 

     Consultas con = new Consultas(); 
     con.insertActividad(fecha, actividad, horas); 
    } 
} 

// JSP

//..... 
    resultado = sentencia.executeQuery("select name,a_Paterno,a_Materno from person where rol='costumer'"); 
    out.println("<select style='width:300px;border:1px;font-family:sans-serif;font-size:16px;'name='cliente'"); 
    out.println("<option value=\"NOMBRE_VACIO\">Select costumer</option>"); 
    while (resultado.next()) { 
     String name = resultado.getString("name"); 
     out.println("<option value='" + name + "'>" + name + "</option>"); 
     } 
    out.println("</select>"); 
    //..... 

あなたは何の名前が選択されていない場合にどうするかを決定する必要があります。私があなただったら、有効な名前が選択されるまで、送信ボタンを無効にします。

関連する問題