Eu estou fazendo um sistema de orçamento simples.
Eu andei dando uma olhada e me parece que isso é um problema que muita gente não conseguiu resolver.
Eu dei uma passeada no forum e não achei nada sobre o assunto.
Na verdade eu achei um tópico que não tinha solução alguma.
Eu preciso converter um dado que vem da index(html)
para inteiro.
Será isso possível?
Analisando o código verá que o preço sempre sera 30;
e a quantidade é mostrada na página, eu acho que isso acontece porque
a quantidade não está como um dado inteiro(numérico), e sim como um dado de texto.
Aqui vai o código:
index
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Recebendo</title>
</head>
<body>
<h3 align="center">Orçamento</h3>
<form id="form1" name="form1" method="post" action="resultado.jsp">
<table width="288" height="162" border="0" align="center">
<tr>
<td width="115" height="29">Tipo de serviço: </td>
<td width="163"><select name="material" id="material">
<option value="1">Plastificação</option>
<option value="2">BOPP Brilho</option>
<option value="3">BOPP Fosco</option>
</select></td>
</tr>
<tr>
<td height="29">Formato:</td>
<td><select name="formato" id="formato">
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="6">6</option>
<option value="8">8</option>
<option value="9">9</option>
</select></td>
</tr>
<tr>
<td height="30">Quantidade</td>
<td><input name="quant" type="text" id="quant" size="7" maxlength="7" /></td>
</tr>
<tr>
<td height="31">Frente/verso</td>
<td><label>
<select name="fv" id="fv">
<option value="1">Frente</option>
<option value="2">Verso</option>
<option value="3">Frente/verso</option>
</select>
</label></td>
</tr>
<tr>
<td height="31"> </td>
<td>
<input type="submit" name="Submit" value="Enviar" />
</td>
</tr>
</table>
</form>
</body>
</html>
JSP
<%
double preco=0, precoFinal=0;
int quanti;
String material;
String fv;
String formato;
material = request.getParameter("material");
formato = request.getParameter("formato");
quanti = Integer.parseInt(request.getParameter("quant")) ;
if(request.getParameter("material").equals("1"))
{
out.print("Plastificação");
out.print("<br>");
out.print("Quantidade: "+ quanti);
if(request.getParameter("formato").equals("2"))
{
preco = 0.14 * quanti;
}
if(request.getParameter("formato").equals("3"))
{
preco = 0.12 * quanti;
}
if(request.getParameter("formato").equals("4"))
{
preco = 0.09 * quanti;
}
if(request.getParameter("formato").equals("6"))
{
preco = 0.075 * quanti;
}
if(request.getParameter("formato").equals("8"))
{
preco = 0.07 * quanti;
}
if(request.getParameter("formato").equals("9"))
{
preco = 0.06 * quanti;
}
}
else if (request.getParameter("material").equals("2"))
{
out.print("BOPP Brilho");
out.print("<br>");
out.print("Quantidade: "+ quanti);
if(request.getParameter("formato").equals("2"))
{
preco = 0.20 * quanti * 2;
}
if(request.getParameter("formato").equals("3"))
{
preco = 0.28 * quanti;
}
if(request.getParameter("formato").equals("4"))
{
preco = 0.20 * quanti;
}
if(request.getParameter("formato").equals("6"))
{
preco = 0.16 * quanti;
}
if(request.getParameter("formato").equals("8"))
{
preco = 0.12 * quanti;
}
if(request.getParameter("formato").equals("9"))
{
preco = 0.10 * quanti;
}
}
else if (request.getParameter("material").equals("3"))
{
out.print("BOPP Fosco");
out.print("<br>");
out.print("Quantidade: "+ quanti);
if(request.getParameter("formato").equals("2"))
{
preco = 0.32 * quanti * 2;
}
if(request.getParameter("formato").equals("3"))
{
preco = 0.48 * quanti;
}
if(request.getParameter("formato").equals("4"))
{
preco = 0.32 * quanti;
}
if(request.getParameter("formato").equals("6"))
{
preco = 0.22 * quanti;
}
if(request.getParameter("formato").equals("8"))
{
preco = 0.20 * quanti;
}
if(request.getParameter("formato").equals("9"))
{
preco = 0.18 * quanti;
}
}
fv = request.getParameter("fv");
if(request.getParameter("fv").equals("1"))
{
out.print("<br>");
out.print("Frente e verso: Frente.");
}
if(request.getParameter("fv").equals("2"))
{
out.print("<br>");
out.print("Frente e verso: Verso.");
}
if(request.getParameter("fv").equals("3"))
{
out.print("<br>");
out.print("Frente e verso: Frente/Verso.");
precoFinal = preco * 2;
}
if(precoFinal < 30)
{
precoFinal = 30;
}
out.print("<br>");
out.print("Valor: "+ precoFinal);
%>
Agradeço desde já a ajuda e atenção.
Abraços.
[quote]
Com qualquer dado digitado ele sempre carrega 0;
no caso, 30, pois se valor for < que 0
valor = 30;
Saida:
Plastificação
Quantidade: 1500
Frente e verso: Frente.
Valor: 30.0