我有一个列表,我想从列表中选择一个选项,然后将id发送到servlet,然后在数据库中插入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();
}
%>
//// 这是我的servlet中的代码
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 :(得分:0)
确保您要提交的值是选项<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table id="saptable">
<thead>
<tr>
<th>Item Name</th>
<th>Item Code</th>
<th>SAP Quantity</th>
</tr>
</thead>
<tbody>
<tr>
<td>
121
</td>
<td>
register121
</td>
<td>
34344
</td>
</tr>
<tr>
<td>
222
</td>
<td>
register222
</td>
<td>
78778
</td>
</tr>
</tbody>
</table>
value='"+id+"'
在servlet上获取所选选项的值,你会这样:
while(resultado.next())
{
String name= resultado.getString("name");
int id= resultado.getInt("id");
out.println("<option value='"+id+"'>"+name+"</option>");
}
您可以为空选项设置值= 0以避免解析异常
int idcliente = Integer.parseInt(request.getParameter("cliente"));
或者在解析为int之前测试out.println("<option value ='0'>Select costumer</option>");
是否为空。
答案 1 :(得分:0)
您的ID不是数字,而是您在数据库查询中检索的name
,并且在您的组合框中包含value
。所以试试这个:
// 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>");
//.....
// Servlet
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);
}
}
如果没有选择名称,您必须决定该怎么做。如果我是你,我会禁用提交按钮,直到选择了有效名称。