Foros del Web » Programando para Internet » PHP »

Text box dinamicos

Estas en el tema de Text box dinamicos en el foro de PHP en Foros del Web. Buenos dias mi problema es el siguiente he creado unos text box dinamicos el nombre de estos text box es cupo[] al final tengo un ...
  #1 (permalink)  
Antiguo 03/09/2008, 09:03
 
Fecha de Ingreso: abril-2008
Mensajes: 28
Antigüedad: 16 años
Puntos: 0
Text box dinamicos

Buenos dias mi problema es el siguiente he creado unos text box dinamicos el nombre de estos text box es cupo[] al final tengo un text box llamado total donde el value lo traigo de la BD el incoveniente es que a ese total le debo ir descontando cada vez que el usuario ingrese un valor en un text box ya he intentado con java script pero solo lo hace cuando hay un solo text box pero cuando hay mas de uno ya no me da el codigo es el siguiente:
Código HTML:
<script>

function restar(forma){

var minuendo=document.getElementsByName(forma)[0].minuendo.value;

var sustraendo=document.getElementsByName(forma)[0].sustraendo.value;

var diferencia=minuendo - sustraendo;

document.getElementsByName(forma)[0].minuendo.value=diferencia;

 

/* Opcionalmente borramos el campo del 'sustraendo' */

document.getElementsByName(forma)[0].sustraendo.value="";

}

</script>
<?	
    echo "<FORM METHOD='POST' ACTION='Provisionar1.php' name='resta'>";
    echo "<table width='100%' border='1'  align='center' cellpadding='2' cellspacing='2' bgcolor='#000099'>\n";
	echo "<tr> \n";
	echo "<td align='center'><font color='#00FF33' face='Maiandra GD'><b>Contratista</b></font></td> \n";
	echo "<td align='center'><font color='#00FF33' face='Maiandra GD'><b>% Asignaci&oacute;n * Calificaci&oacute;n</b></td> \n";
	echo "<td align='center'><font color='#00FF33' face='Maiandra GD'><b>Cuadrillas</b></td> \n";
	echo "<td align='center'><font color='#00FF33' face='Maiandra GD'><b>% Capacidad</b></td> \n";
	echo "<td align='center'><font color='#00FF33' face='Maiandra GD'><b>% Asignaci&oacute;n Total</b></td> \n";
	echo "<td align='center'><font color='#00FF33' face='Maiandra GD'><b>Cupo Sugerido</b></td> \n";
	echo "<td align='center'><font color='#00FF33' face='Maiandra GD'><b>Cupo Asignado</b></td> \n";
	echo "<td align='center'><font color='#00FF33' face='Maiandra GD'><b>Observaci&oacute;n</b></td> \n";
	echo "</tr>";
	$sSQL="SELECT * FROM nota_contratista "; 
	$result=mysql_query($sSQL);
	$s=0;
		while ($row=@mysql_fetch_array($result))
		{
		$sugerido=$row[10];			
		echo "<tr> \n";
		echo "<input type='hidden' name='numero[]' value=".$row[0].">";
		echo "<td align='center'><font color='#999999' face='Maiandra GD'><b>".$row[1]."</b></font></td> \n";
		echo "<td align='center'><b>".$row[6]."</b></td> \n";
		echo "<td align='center'><b>".$row[7]."</b></td> \n";
		echo "<td align='center'><b>".$row[8]."</b></td> \n";
		echo "<td align='center'><b>".$row[9]."</b></td> \n";
		echo "<td align='center'><b>$sugerido</b></td> \n";
?>		
		<td align="center"><input type="text" name="sustraendo" onBlur="restar('resta');"></td>
<?		
		echo "<td align='center'><textarea name='observacion[]' cols='30' rows='2'></textarea></td> \n";
		echo "</tr>";
		$s=$s+$sugerido;			
		}
		echo "</table>";
        echo "<table width='47%' border='1' align='right' cellpadding='2' cellspacing='2' bgcolor='#000099'>\n";
		echo "<tr>";
	    echo "<td width='19%' align='center'><font color='#00FF33' face='Maiandra GD'>Total:&nbsp;</font></td>";
?>		
		<td width="81%"><input type="text" name="minuendo" value=<? echo $s?> ReadOnly></td>
<?		
		echo "</tr>";
		echo "</table><br><br>";
        echo "<INPUT TYPE='SUBMIT' value='Aceptar'></td>";
		echo "</form>";
  #2 (permalink)  
Antiguo 03/09/2008, 09:30
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Text box dinamicos

Bueno antes que nada, veo varios detalles en tu script
Tienes multiples campos llamados sustraendo (uno por cada iteracion del while, aqui deberias ponerle un nombre dinamico como sustraendo_<?=$i?> donde $i sea un contador de las iteraciones del while

otro es la forma que haces referencia a los datos del formulario (no digo que este mal sino que no es comun)

Otro detalle que olvidaba es que tienes que hacer validaciones sobre lo que se captura pues libremente puedo poner texto en el campo y esto en si ya es un error y al hacer las operaciones tambien te lo generará

Aqui te sugiero una funcion

Código:
function restarme(campo)
{
	if(campo.value=="")
		return false;
	else
	{
		document.resta.minuendo.value=document.resta.minuendo.value-campo.value;
	}
}
solo requieres cambiar esto en el html

Código HTML:
<td align="center"><input type="text" name="sustraendo" onBlur="restarme(this);"></td> 
Exito
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810

Última edición por Avatar810; 03/09/2008 a las 09:31 Razón: Complementacion de respuesta
  #3 (permalink)  
Antiguo 03/09/2008, 09:45
 
Fecha de Ingreso: abril-2008
Mensajes: 28
Antigüedad: 16 años
Puntos: 0
Respuesta: Text box dinamicos

Gracias por la ayuda todo salio perfectamente
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 10:37.