Foros del Web » Programando para Internet » PHP »

Datos y calculo cotizacion

Estas en el tema de Datos y calculo cotizacion en el foro de PHP en Foros del Web. Hola amigos: Estoy haciendo un formulario de cotizacion, pero ya me enrrede. Este es el codigo: Código PHP: <?php include ( 'func/book_sc_fns.php' ); $ruta  =  '.' ...
  #1 (permalink)  
Antiguo 06/09/2009, 15:39
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Busqueda Datos y calculo cotizacion

Hola amigos:

Estoy haciendo un formulario de cotizacion, pero ya me enrrede. Este es el codigo:

Código PHP:
<?php
include ('func/book_sc_fns.php');
$ruta '.';
do_html_header();
 
$conn db_connect();
  
$catid=$_GET['catid'];
$sql mysql_query("SELECT catid, price FROM products where catid='$catid'");
while (
$registro2 mysql_fetch_array($consultar2)) {
$catid $registro2['catid'];
$price $registro2['price'];
}
?>
<table width="537" border="0" height=100% align="center" cellpadding="0" cellspacing="5">
                  <tr>
                    <td valign="top" class="style12 style16">  <div align="center">
                      <form name="form1" method="post" action="cotizar.php">
                        <table width="521" border="1" cellspacing="5">
                          <tr>
                            <td width="177" bgcolor="#CCCFD6" class="style15"><div align="center" class="Estilo2">MODELO</div></td>
                            <td width="146"  bgcolor="#CCCFD6" class="style15"><div align="center" class="Estilo2">PRECIO</div></td>
                            <td width="57" bgcolor="#CCCFD6" class="style15"><div align="center"><span class="Estilo2">CANTIDAD</span></div></td>
                            <td width="98" bgcolor="#CCCFD6" class="style15"><div align="center" class="Estilo2">TOTAL</div></td>
                          </tr>
                          <tr>
                            <td class="style15">BLACKBERRY PEARL 8100 </td>
                            <td><div align="center">
                              <input name="p_pearl8100" type="text" disabled="disabled" id="p_pearl8100" size="20">
                            </div></td>
                            <td><div align="center">
                              <input name="pearl_8100" type="text" id="pearl_8100" size="5">
                            </div></td>
                            <td><div align="center">
                              <input name="textfield" type="text" size="15" disabled="disabled">
                            </div></td>
                          </tr>
                          <tr>
                            <td class="style15">BLACKBERRY PEARL FLIP </td>
                            <td><div align="center">
                              <input name="p_pearlflip" type="text" disabled="disabled" id="p_pearlflip" size="20">
                            </div></td>
                            <td><div align="center">
                              <input name="pearl_flip" type="text" id="pearl_flip" size="5">
                            </div></td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td class="style15">BLACKBERRY CURVE 8320</td>
                            <td><div align="center">
                              <input name="p_curve8320" type="text" disabled="disabled" id="p_curve8320" size="20">
                            </div></td>
                            <td><div align="center">
                              <input name="curve_8320" type="text" id="curve_8320" size="5">
                            </div></td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td class="style15">BLACKBERRY CURVE GEMINI </td>
                            <td><div align="center">
                              <input name="p_curvegemini" type="text" disabled="disabled" id="p_curvegemini" size="20">
                            </div></td>
                            <td><div align="center">
                              <input name="curve_gemini" type="text" id="curve_gemini" size="5">
                            </div></td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td class="style15">BLACKBERRY JAVELIN </td>
                            <td><div align="center">
                              <input name="p_javelin" type="text" disabled="disabled" id="p_javelin" size="20">
                            </div></td>
                            <td><div align="center">
                              <input name="javelin" type="text" id="javelin" size="5">
                            </div></td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td class="style15">BLACKBERRY BOLD </td>
                            <td><div align="center">
                              <input name="p_bold" type="text" disabled="disabled" id="p_bold" size="20">
                            </div></td>
                            <td><div align="center">
                              <input name="bold" type="text" id="bold" size="5">
                            </div></td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td class="style15">BLACKBERRY TOUR </td>
                            <td><div align="center">
                              <input name="p_tour" type="text" disabled="disabled" id="p_tour" size="20">
                            </div></td>
                            <td><div align="center">
                              <input name="tour" type="text" id="tour" size="5">
                            </div></td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td class="style15">&nbsp;</td>
                            <td colspan="2" class="style15"><div align="center" class="Estilo2">TOTAL GENERAL </div>                              <div align="center"></div></td>
                            <td>&nbsp;</td>
                          </tr>
                          
                          <tr>
                            <td colspan="4" bgcolor="#CCCFD6"><div align="center">
                              <input name="calcular" type="button" id="calcular" value="Calcular">
                            </div></td>
                            </tr>
                        </table>
                          </form>
                      <p><br>
                      </p>
                      </div></td>
                  </tr>
                </table>
Lo que pasa es que quiero traer al formulario el precio segun el modelo de producto con catid pero no se como hacerlo pues deberia pasar a la variable $catid recogiendola de la misma pagina pero no se como hacerlo.

Please denme unas pistas, gracias.
  #2 (permalink)  
Antiguo 06/09/2009, 20:21
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Datos y calculo cotizacion

Hola
Pues tal vez es porque estas obteniendo la primera vez el catid por get, pero el formulario lo tienes en post

Podrias hacer una de dos

1. Poner el formulario con method en GET
2. Intentar esto en tu codigo

Código PHP:

$catid
=$_GET['catid']; 
if(
$catid == '' || !isset($catid)){
 
$catid $_POST['catid']; 

Espero te sirva
Saludos
  #3 (permalink)  
Antiguo 07/09/2009, 08:05
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Datos y calculo cotizacion

Muchas Gracias pero no me funciona. Un amigo me estuvo ayudando pero no logro mostrar los calculos. Deberian mostrarse automaticamente al introducir una cantidad en la casilla de cantidad. Este es el codigo:

Código PHP:
<?php
include ('func.php');
$ruta '.';
do_html_header();
 
$conexion db_connect();
$catid $_GET['catid']; 
if(
$catid == '' || !isset($catid)){
 
$catid $_POST['catid']; 
}  
$sql mysql_query('SELECT catid, price FROM products');
$registros = array();
while (
$registro2 mysql_fetch_array($sql)) {
    
$registros[$registro2['catid']] = $registro2['price'];
}
?>
<html>
<body leftmargin="0"  topmargin="0">

    <table width="530" border="1" align="center">
      <form name="form1" method="post" action="cotizacion.php">
   <tr>
    <td width="167" bgcolor="#CCCFD6" class="style15"><div align="center" class="Estilo2">MODELO</div></td>
    <td width="126"  bgcolor="#CCCFD6" class="style15"><div align="center" class="Estilo2">PRECIO</div></td>
    <td width="57" bgcolor="#CCCFD6" class="style15"><div align="center"><span class="Estilo2">CANTIDAD</span></div></td>
    <td width="57" bgcolor="#CCCFD6" class="style15"><div align="center"><span class="Estilo2">TOTAL</span></div></td>
  </tr>
                        <?php 
                        
foreach($registros as $id => $price) {
                        
//$total = (isset($_POST['cant-' . $catid])) ? $_POST['cant-' . $catid] * $price : 0;
                        
$cantidad = (isset($_POST['cant-' $price])) ? $_POST['cant-' $price] * 0;
                        
$total $cantidad $price;

                        echo 
"
        <tr>
            <td align=\"center\"><input type=\"text\" name=\"catid[]\" value=\"$id\" size=\"20\" /></td>
            <td align=\"center\"><input type=\"text\" name=\"price[]\" value=\"$price\"  size=\"10\" /></td>
            <td align=\"center\"><input name=\"cant-$catid\" type=\"text\" id=\"cant-$catid\" size=\"10\" value=\"$cantidad\" /></td>
            <td align=\"center\" class=\"style15\">$total</td>
          </tr>"
;

                        }
                        
?>
            
                      </form>
                      </table>
              
</body>

</html>
Por favor amigos de verdad necesito ayuda, no he dormido y tengo que entregar esto hoy. Gracias.
  #4 (permalink)  
Antiguo 07/09/2009, 21:38
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Datos y calculo cotizacion

Hola
Bueno, pues hice un aproximado de tu modelo y me trae los datos de la tabla, aqui el codigo

<?php
//include ('func/book_sc_fns.php');
//$ruta = '.';
//do_html_header();
$conn = mysql_connect("localhost","test","test");
mysql_select_db("test");
$catid=$_GET['catid'];
$sql = mysql_query("SELECT productid, model, price FROM products where catid='$catid'");
?>
<table width="537" border="0" height=100% align="center" cellpadding="0" cellspacing="5">
<tr>
<td valign="top" class="style12 style16"> <div align="center">
<form name="form1" method="post" action="cotizar.php">
<table width="521" border="1" cellspacing="5">
<tr>
<td width="177" bgcolor="#CCCFD6" class="style15"><div align="center" class="Estilo2">ID</div></td>
<td width="177" bgcolor="#CCCFD6" class="style15"><div align="center" class="Estilo2">MODELO</div></td>
<td width="146" bgcolor="#CCCFD6" class="style15"><div align="center" class="Estilo2">PRECIO</div></td>
<td width="57" bgcolor="#CCCFD6" class="style15"><div align="center"><span class="Estilo2">CANTIDAD</span></div></td>
<td width="98" bgcolor="#CCCFD6" class="style15"><div align="center" class="Estilo2">TOTAL</div></td>
</tr>
<?php
while ($registro2 = mysql_fetch_array($sql)) {
echo '<tr>';
echo '<td class="style15">'.$registro2['productid'].'</td>';
echo '<td class="style15">'.$registro2['model'].'</td>';
echo '<td><div align="center">';
echo '<input name="product_'.$registro2['productid'].'" type="text" disabled="disabled" id="product_'.$registro2['productid'].'" size="20" value = "'.$registro2['price'].'">';
echo '</div></td>';
echo '<td><div align="center">';
echo '<input name="cantidad_'.$registro2['productid'].'" type="text" id="cantidad_'.$registro2['productid'].'" size="5">';
echo '</div></td>';
echo '<td><div align="center">';
echo '<input name="total_'.$registro2['productid'].'" type="text" id ="total_'.$registro2['productid'].'" size="15" disabled="disabled">';
echo '</div></td>';
echo '</tr>';
}
?>


<tr>
<td class="style15">&nbsp;</td>
<td colspan="2" class="style15"><div align="center" class="Estilo2">TOTAL GENERAL </div>
<div align="center"></div></td>
<td><input type="text" name="cantidad_total" disabled="disabled"></td>
<td><input type="text" name="total" disabled="disabled"></td>
</tr>

<tr>
<td colspan="5" bgcolor="#CCCFD6"><div align="center">
<input name="calcular" type="button" id="calcular" value="Calcular"'>
</div></td>
</tr>
</table>
</form>
<p><br>
</p>
</div></td>
</tr>
</table>

Ahora, según te entiendo, quieres que se calcule la cantidad por el precio y te vaya arrojando esos calculos a medida que escribes o cuando presionas en el boton calcular

Bueno, eso lo puedes hacer de 2 maneras:

1. Con javascript, sin necesidad de enviar la página en un submit, al dar clic en el botón vas a una función javascript donde calculas lo que necesitas y alimentas los campos que necesites
2. Con php, esto necesita que envies la página con un submit para que estos datos viajen ya sea a esta misma página php o a otra donde se hagan los calculos y luego se vean los mismos

Bueno, suerte con eso
Saludos
  #5 (permalink)  
Antiguo 08/09/2009, 15:50
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Datos y calculo cotizacion

Gracias mortiprogramador, pero no me funciona porque yo no tengo de donde traerme la variabe $catid. Por eso tenia el codigo que coloque en mi segunda respuesta que si lo trae, pero el problema es que no me trae los calculos.

Por favor me pueden ayudar a saber porque no los trae. Tengo 3 dias tratando de solucionarlo y no he podido. Gracias.
  #6 (permalink)  
Antiguo 08/09/2009, 16:49
Avatar de _-ZeuS-_  
Fecha de Ingreso: junio-2007
Ubicación: Quito, Ecuador! ;)
Mensajes: 100
Antigüedad: 16 años, 10 meses
Puntos: 7
Respuesta: Datos y calculo cotizacion

trata de traer los datos de la base y hazlos antes de mostrarlos
  #7 (permalink)  
Antiguo 08/09/2009, 17:00
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Datos y calculo cotizacion

si ya trae los datos de la BD y los muestra el problema es que no hace el calculo. Yo creo que el problema esta en esta linea:

Código PHP:
$cantidad = (isset($_POST['cant-' $price])) ? $_POST['cant-' $price] * 0;
                        
$total $cantidad $price
Ya no se que mas pensar, he probado mil cosas!!!
  #8 (permalink)  
Antiguo 08/09/2009, 21:01
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Datos y calculo cotizacion

Hola
En efecto, por ahi es la cosa, y es que esa variable post no te esta trayendo nada
Intenta esto
antes de asignar $cantidad pon esta línea

Código PHP:
$_POST['cant-' $price] = 2//1, 2 o bueno, la cantidad que quieras 
esto dentro del foreach, y todos los articulos que muestres deberán ser multiplicados por la cantidad que pusiste, prueba eso, y si te funciona, entonces revisa a la hora en que te llegan los datos del post, es decir, alguna página debe enviar estos datos para que aqui sean recibidos
Saludos
  #9 (permalink)  
Antiguo 11/09/2009, 15:00
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Datos y calculo cotizacion

Gracias mortiprogramador ya pude resolverlo. Saludos.
  #10 (permalink)  
Antiguo 12/10/2009, 21:22
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Datos y calculo cotizacion

Hola kimmy, yo en este momento tengo que hacer un formulario de cotizacion de varios producots, y he visto tu mensaje, queria preguntarte si podrias guiarme un poco en como lo hiciste, osea las tablas, mas o menos la estructura, para empezar desde ahi.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:23.