Foros del Web » Programando para Internet » Javascript » Frameworks JS »

aumentar cantidad de inputs

Estas en el tema de aumentar cantidad de inputs en el foro de Frameworks JS en Foros del Web. Hola, bien... les cuento, hize un sistema de calificaciones para un colegio en php/mysql está bastante completo y cada profesor tiene acceso como admin para ...
  #1 (permalink)  
Antiguo 20/02/2006, 18:33
Avatar de LedideR  
Fecha de Ingreso: noviembre-2004
Ubicación: Temuco, Chile
Mensajes: 39
Antigüedad: 19 años, 5 meses
Puntos: 1
aumentar cantidad de inputs

Hola, bien... les cuento, hize un sistema de calificaciones para un colegio en php/mysql está bastante completo y cada profesor tiene acceso como admin para agregar/modificar/borrar notas de alumnos. Al agregar notas, uno elije la cantidad de notas que quiere agregar por medio de un cuadro desplegable, por ejemplo, selecciono 4 y me aparecen 4 inputs, el problema es que tiene que recargarse la pagina al seleccionar la cantidad y si se han ingresado otros datos, se pierden. Pregunté en otro foro y me dijeron que usara Ajax, leí acerca de esto, pero no entendí mucho, tampoco manejo mucho el javascript.

ahora mi pregunta es.. ¿Cómo se puede hacer para que al elegir una cantidad se muestren los inputs correspondientes sin recargar la pagina?

Gracias de antemano. Ojalá puedan ayudarme. Por ahora voy a seguir viendo ejemplos de Ajax.
__________________
-=| L\€/O |=-
  #2 (permalink)  
Antiguo 20/02/2006, 19:10
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 7 meses
Puntos: 0
Es cuestion de acostumbrarse al uso

Efectivamente LedideR, una de las ventajas de AJAX es el poder mandar a ejecutar solo un pedacito de script en el servidor sin necesidad de recargar la página completa y perder datos (claro que al recargar bien podrías no perderlos, pero ese proceso es mas pesado).

Se trata de que al meter datos en tu caja de texto que maneja el numero de inputs que requieres, se mande a ejecutar una funcion en PHP que solamente tome ese dato y procese y presente tantas cajas como sea necesario, sin afectar la demás parte del codigo.

Yo lo manejo actualmente para registrar participantes a eventos por parte de una empresa determinada. te pongo los pedacitos que forman parte de ese proceso.

Código:
registro.php

<script language="javascript" type="text/javascript" src="admin/ajax/ajax.js"></script>
<script language="javascript">
function chgParti()
{	

	contenedor = document.getElementById('mparticipantes');
	npar = document.getElementById('par').value;

		
	ajax=nuevoAjax();
	ajax.open("GET", "xdfacturacion.php?d4="+npar,true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			contenedor.innerHTML = ajax.responseText
		}
	}
	ajax.send(null)
}

<td align="right" valign="top">N&Uacute;MERO DE PARTICIPANTES:</td>
<td align="left" valign="top">
<input name="par" type="text" class="navLink" id="par" size="10" maxlength="3" onKeyUp="chgParti();">
<tr>
<td align="center" id="mparticipantes" colspan="2">esperando numero de participantes...</td>                    
<tr>
Tanto al funcion como el codigo html estan dentro de un mismo archivo, clarfo, la funcion es parte de codigo javascript. Si te fijas, antes de hacer la funcion, tengo una inclusion de un archivo (ajax.js) el cual puedes encontrar en muchas partes en internet y es el que te permite hacer propiamente la ejecucion de tu proceso.

La funcion toma el valor de la caja de texto donde me ingresan el numero de participantes(los toma por el id del elemento), luego ese dato se lo paso a un archivo php y le digo que lo que regrese esa accion, me lo pinte debajo en un <tr> el cual tambien esta identificado por su id.

Código:
registro.php

if(isset($_GET["d4"]))
{
	$par = trim($_GET["d4"]);
?>
<table width="100%"  border="0" cellspacing="3" cellpadding="0">
<?

	for($i = 1 ; $i <= $par ; $i++)
	{
?>	
<tr>
<td width="8%" align="right" valign="top">TITULO:</td>
<td width="8%" align="left" valign="top">
<input name="tit<?=$i?>" type="text" class="navLink" id="tit<?=$i?>" value="<?= $tit ?>" size="8" maxlength="8" >
</td>
<td width="8%" align="right" valign="top">NOMBRE:</td>
<td width="29%" align="left" valign="top">
<input name="nom<?=$i?>" type="text" class="navLink" id="nom<?=$i?>" value="<?= $nom ?>" size="40" maxlength="150">
</td>
</tr>
<? } ?>							
</table>
<?
}
Bueno, pues el php lo que haces es tomar el valor del numero de participantes, y luego con eso, pintar las cajas seleccionadas en el espacio del html que estaba especificado para esto.

Espero que esto te haya dado de menos una idea y puedas seguir aprendiendo. Prueba y verás que no es tan complicado, tan solo hay que tomarle el sentido.

Saludos!
  #3 (permalink)  
Antiguo 20/02/2006, 20:20
Avatar de LedideR  
Fecha de Ingreso: noviembre-2004
Ubicación: Temuco, Chile
Mensajes: 39
Antigüedad: 19 años, 5 meses
Puntos: 1
Muchas gracias yacatl, me aclarastes muchas dudas con tu respuesta y pude solucionar el problema. Estaré eternamente agradecido.

Gracias nuevamente.
__________________
-=| L\€/O |=-

Última edición por LedideR; 20/02/2006 a las 20:26
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 14:28.