Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/10/2010, 09:56
Avatar de ruxee
ruxee
Usuario no validado
 
Fecha de Ingreso: agosto-2002
Ubicación: USA
Mensajes: 131
Antigüedad: 21 años, 9 meses
Puntos: 7
Respuesta: Llenar un TextBox con el precio de productos de un combo


Gracias a ambos, me ayudo mucho la interpretacion y la modifique un poco. Aqui les describo que fue lo que hice:
  1. Defini el SELECT cargado los productos, id y precio de la tabla respectiva
  2. En el OPTION VALUE concateno el id del producto (rellenado de ceros a la izquierda para mantener una misma dimension) con el precio
  3. En el evento OnChange cargo una funcion Java que se llama cargaPrecio y le mando de parametro THIS.VALUE (el valor seleccionado)
  4. cargaPrecio descompone el parametro enviado en dos valores
  5. El primero de ellos es el substring del precio, que va desde el 11vo caracter hasta el fin del string
  6. El segundo, es un substring desde el inicio hasta la posicion 11va que luego lo convierto a un PARSEFLOAT, este es el id del producto
  7. Por supuesto ambos valores los cargo a su respectivo campo texto, donde uno tiene el codigo del producto y el otro su precio

Aqui les muestro como cargo el SELECT
Código HTML:
<select name="producto" id="producto" onchange="cargaPrecio(this.value)">
      <option value="0" selected="selected">Seleccione</option>
      <?php $sql_producto = "SELECT id_producto,producto,precio FROM producto ORDER BY producto";
      $sql_result_producto = mysql_query($sql_producto);
      while($row_prod = mysql_fetch_array($sql_result_producto)){?>
          <option value="<?php echo str_pad($row_prod['id_producto'],11,'0',STR_PAD_LEFT).$row_prod['precio'];?>"><?php echo $row_prod['producto'];?></option>
      <?php }?></select> 
Aqui esta la funcion cargaPrecio
Código:
<script language="javascript">
function cargaPrecio(IdSelect){
    document.form1.TXTventa.value = IdSelect.substring(11,22);
    document.form1.TXTid_producto.value = parseFloat(IdSelect.substring(1,11));
    return;
}
</script>
No se si sera la forma mas eficiente de hacerlo pero no se me ocurrio otra, por lo que acepto sugerencias.