Comunidad de diseño web y desarrollo en internet online

Ayuda con operaciones de campos de una tabla

Citar            
MensajeEscrito el 30 Sep 2010 03:37 am
Por favor alguien podria indicarme por que el siguiente codigo no me funciona, gracias por su atencion.

<script type="text/javascript">
function multiplicar(precio,cantidad,total){
alert(precio);
var c=document.getElementById(cantidad);
var t=document.getElementById(total);
var cantidad=c.value;
var money=precio*cantidad;
t.value=money;

}
</script>
<?php
include('conexion.php');
$conexion=conectar();
if (!$conexion) {
die('No se pudo conectar con el servidor');
}
mysql_select_db("dbp", $conexion) or die("No se pudo conectar con la base de datos");
$result=mysql_query("insert into jos_tbl_auxventas(producto,medida,precio) select producto,medida,precio from jos_verduras");
$result=mysql_query("select producto,medida,precio,cantidad,total from jos_tbl_auxventas");
echo "<form id='frm_ventas'>";
echo "<table border='1' id='tabla'>";
while($fila=mysql_fetch_array($result))
{echo "<tr><td id='p".$fila['producto']."'>".$fila['producto']."</td>";
echo "<td id='u".$fila['producto']."'>".$fila['medida']."</td>";
echo "<td id='pr".$fila['producto']."'>".$fila['precio']."</td>";
echo "<td><input type='text' id='c".$fila['producto']."' onkeyup='javascript:multiplicar(".$fila['precio'].",c".$fila['producto'].",t".$fila['producto'].")' value='0'></td>";
echo "<td id='t".$fila['producto']."'>".$fila['total']."</td></tr>";
}
echo "<table>";
echo "</form>";
$result=mysql_query("delete from jos_tbl_auxventas");
cerrar_conexion($conexion);
?>
<br/>
<input type="button" id="btn_recorrer" value="Comprar"/>

Por sebastiancb

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Oct 2010 01:01 pm
A la función le envías 3 valores, el segundo que envías es c.".$fila['producto']. lo que equivale a que estás enviando c.nombrepruducto, no la cantidad

Suerte

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 04 Oct 2010 04:24 pm
Mira realmente lo que deseo es obtener el id de cada elemento agregado dinamicamente a partir de una base de datos ya que la cantidad de productos es variable y la idea es no modificar el codigo fuente cada vez que se agregue un producto.

Aqui está otro codigo fuente mas entendible creo, ojala puedas ayudarme.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
function mult(cantidad)
{var c=document.getElementById(cantidad);
alert(parseInt(c.value));
}
</script>
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<?php
include('conexion.php');
$conexion=conectar();
if (!$conexion) {
die('No se pudo conectar con el servidor');
}
mysql_select_db("prueba", $conexion) or die("No se pudo conectar con la base de datos");
?>
<form id="fm">
<?php
$result=mysql_query("select nombre,precio,cantidad,total from productos");
echo "producto&nbsp;&nbsp;&nbsp;&nbsp;precio&nbsp;&nbsp;&nbsp;&nbsp;cantidad&nbsp;&nbsp;total <br/>";
while($fila=mysql_fetch_array($result))
{echo $fila['producto']." ";
echo "<input type='text' id='".$fila['nombre']."' value='".$fila['nombre']."'/>";
echo "<input type='text' id='pr".$fila['nombre']."' value='".$fila['precio']."'/>";
echo "<input type='text' id='c".$fila['nombre']."' value='".$fila['cantidad']."' onclick='javascript:mult(c".$fila['nombre'].")'/>";
echo "<input type='text' id='t".$fila['nombre']."' value='".$fila['total']."'/>";
echo "<br/>";
}
cerrar_conexion($conexion);
?>
</form>
</body>
</html>

Cuando ejecuto el evento obtengo el siguiente error c is null

Por sebastiancb

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Oct 2010 05:41 pm
Amigo...

Código Javascript :

function mult(cantidad)
{var c=document.getElementById(cantidad);
alert(parseInt(c.value));
}

Esto no tiene sentido, estás usando c antes de que esté definido.

Si entiendo bien lo que quieres hacer, deberías probar lo siguiente:

Código PHP :

echo "<input type='text' id='c".$fila['nombre']."' value='".$fila['cantidad']."' onclick='javascript:mult(this.id)'/>";


Y luego:

Código Javascript :

function mult(elem)
{var cant=document.getElementById(elem).value;
alert(cant);

}

[/js]

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 05 Oct 2010 03:40 pm
Lo que me dijiste me funcionó bien, pero si necesito enviarle otro id de los campos de texto que imprimo a la funcion mult, ahi como se haria para diferenciarlos.

Por sebastiancb

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Oct 2010 05:17 pm
No comprendo tu pregunta. Cuando hablas de "otro id" te refieres al atributo id del tag HTML o a otra cosa?, porque el código que he puesto es independiente del id que tenga el tag (mientras tenga uno, claro está).

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 05 Oct 2010 11:12 pm
Mira lo que hago en esta parte del codigo

while($fila=mysql_fetch_array($result))
{echo $fila['producto']." ";
echo "<input type='text' id='".$fila['nombre']."' value='".$fila['nombre']."'/>";
echo "<input type='text' id='pr".$fila['nombre']."' value='".$fila['precio']."'/>";
echo "<input type='text' id='c".$fila['nombre']."' value='".$fila['cantidad']."' onclick='javascript:mult(c".$fila['nombre'].")'/>";
echo "<input type='text' id='t".$fila['nombre']."' value='".$fila['total']."'/>";
echo "<br/>";
}

Como le hago si tambien tengo que enviarle el id del campo de texto que me imprime el total o sea en la parte->
onclick='javascript:mult(this.id,this.id), pero como le digo que el segundo this.id corresponde al campo de texto que me muestra el total.

Por sebastiancb

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Oct 2010 01:03 am
Ah, en ese caso:

Código PHP :

function mult(idcant, idtotal) {
   cant = document.getElementById(idcant).value;
   total = document.getElementById(idtotal).value;
   alert("cant: "+cant+" total: "+total);
}

<!-- some code here -->
<?php
while($fila=mysql_fetch_array($result))
{echo $fila['producto']." ";
echo "<input type='text' id='".$fila['nombre']."' value='".$fila['nombre']."'/>";
echo "<input type='text' id='pr".$fila['nombre']."' value='".$fila['precio']."'/>";
echo "<input type='text' id='c".$fila['nombre']."' value='".$fila['cantidad']."' onclick='javascript:mult(c".$fila['nombre'].",".t".$fila['nombre'].")'/>";
echo "<input type='text' id='t".$fila['nombre']."' value='".$fila['total']."'/>";
echo "<br/>";
}
?>

Debería funcionar.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.