Foros del Web » Programando para Internet » Javascript »

crear campos nuevos en un form mediante php

Estas en el tema de crear campos nuevos en un form mediante php en el foro de Javascript en Foros del Web. Bueno, la idea es simple, aunque creo que la solucion no lo es tanto. yo tengo un formulario donde aparecen varios input, el asunto es ...
  #1 (permalink)  
Antiguo 06/03/2008, 07:01
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años
Puntos: 2
crear campos nuevos en un form mediante php

Bueno, la idea es simple, aunque creo que la solucion no lo es tanto.

yo tengo un formulario donde aparecen varios input, el asunto es que estamos en una pagina de hacer presupuestos por ejemplo, y nunca sabemos cuantas lineas vamos a necesitar en el presupuesto, por tanto necesito alguna manera de que segun sea necesario se puedan añadir nuevas lineas de escritura o inputs dentro del form.

se me habia ocurrido la idea de colocar un boton a modo de "añade una nueva linea" y que al pulsarlo, se genere un nuevo input dentro del form, y que mantenga la informacion introducida anteriormente en los otros inputs anteriores, y que ademas de todo esto, cada vez que se añada la linea nueva, en la casilla de "precio final" se haga el calculo necesario para sumar el total, esta parte es mas sencilla pero necesito saber como añadir los campos nuevos sin que se borren los anteriores.

espero haberme explicado con claridad.
  #2 (permalink)  
Antiguo 06/03/2008, 08:22
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Re: crear campos nuevos en un form mediante php

Tengo entendido que agregar inputs en tiempo de ejecución se puede hacer con Javascript. Es rápido para el usuario y no le recarga la página, pero personalmente nunca lo he intentado, así que no sé qué tan lento de programar sea.

Si quieres hacerlo con PHP tendrás que ir recargando la página cada vez que quieran agregar un nuevo input.
En ese caso tendrás que estar tomando los valores recibidos por el POST cada vez que se recargue el formulario, y asignándole en el value el valor recibido respectivamente.
Para saber cuántos inputs debe haber por cada recarga, puedes guardar en un campo oculto del formulario un contador de inputs: de modo que si la persona presiona "Agregar Línea", al recargar la página imprima los inputs con sus respectivos valores + 1 vacío. Para todos estos efectos es bueno que guardes los valores de las líneas en un arreglo.
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 06/03/2008, 08:27
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: crear campos nuevos en un form mediante php

hola, como dice quinqui, lo debes hacer con javascript, pero tal vez lo puedas hacer con php si sabes de antemano cuantos input quieres tener, aqui te paso un link donde esta solucionado:
http://www.forosdelweb.com/f18/cantidad-campos-550434/

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #4 (permalink)  
Antiguo 06/03/2008, 08:30
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años
Puntos: 2
Re: crear campos nuevos en un form mediante php

bueno, realmente me da lo mismo hacerlo en javascript que con php, lo ideal seria conseguirlo.

aunque pensandlo dos veces, no se que problema debo tener con los javascript, porque hace un rato he probado una cosa, y es que tengo el menu de la aplicacion con un javascript y ya funciona perfecto, los menus se expanden y colapsan perfectamente bien, sin embargo, si cargo otro javascript (el menu carga un .js) que solo es codigo, sin .js incorporado, el efecto que provoca es que el menu aparece todo expandido y los links de expandir/colapsar los menus no funcionan. es como si uno molestara al otro y le hiciera dejar de funcionar, por tanto si metiera un tercer codigo javascript... no quiero saber que podria pasar jajajaja.

la idea de hacerlo con php era precisamente por eso :)
  #5 (permalink)  
Antiguo 06/03/2008, 08:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: crear campos nuevos en un form mediante php

Si tienes ese tipo de colisión entre tus scripts, te recomiendo verifiques que no estén las dos funciones usando el evento onLoad del objeto window, ya que eso puede ocasionar que no se ejecuten ambos scripts.

Te recomiendo te des una vuelta por el foro de JS donde te podran orientar.

Saludos.
  #6 (permalink)  
Antiguo 06/03/2008, 09:03
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años
Puntos: 2
Re: crear campos nuevos en un form mediante php

GatorV pues va a ser eso me parece, ahora no puedo decirlo seguro porque el script que añadi en segundo lugar lo he borrado y ahora deberia volver a localizarlo (estoy en ello) pero veo que el script que permanece si tiene el evento window.onload, y juraria que el otro lo tenia tambien porque (y esto es suposicion mia) era un reloj que mostraba hora y dia y esto se carga cada vez que se recarga la pagina, por tanto deberia usar el window.onload

voy a asegurarme
  #7 (permalink)  
Antiguo 06/03/2008, 09:09
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años
Puntos: 2
Re: crear campos nuevos en un form mediante php

pues finalmente no va a ser eso...


mi funcion
Código:
	<script type="text/javascript" src="js/sdmenu.js"> </script>

	<script type="text/javascript">
	
		var myMenu;
		window.onload = function() {
			myMenu = new SDMenu("my_menu");
			myMenu.init();
		};	
    </script>
iba a postear el link donde ver el otro codigo, q es largo, pero como no tengo mas de 30 post, y el sistema no me deja... pongo el contenido del otro script.

Código:
var timerID = null;          //Identidad del temporizador
var timerRunning = false;    //Flag para saber si el reloj esta activo

function stopTimer()
{        //Para el reloj       
if(timerRunning) 
	{                
	clearTimeout(timerID);
	timerRunning = false;
	}
} 

function startTimer()
	{     // Para el reloj, si esta activo y lo arranca.    
	stopTimer();
	runClock();
	}

function runClock()
	{        
	var Hora=timeNow();		// Solo para evitar hacer varias llamadas
	var Dia=fechahoy();
	// Mostrar la hora en los elementos que se desee
	window.document.getElementById("reloj").innerHTML= Dia + " " + Hora;
	window.status=Dia + " " + Hora;
	//window.document.title=Dia + " " + Hora;	//Si no hay frames
	top.document.title=Dia + " " + Hora;      //Por si hay frames
	timerID = setTimeout("runClock()",1000);	//setTimeout() se llama a si mismo.
	timerRunning = true;
	}

function timeNow() 
	{        //Toma la hora y la formatea        
	now = new Date();
	hours = now.getHours();
	minutes = now.getMinutes();
	seconds = now.getSeconds();
	timeStr = ((hours < 10) ? "0" : "") + hours;
	timeStr += ((minutes < 10) ? ":0" : ":") + minutes;
	timeStr += ((seconds < 10) ? ":0" : ":") + seconds;
	return timeStr;
	}

function fechahoy()
	{
	var diasemana = new Array ('Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado', 'Domingo');
	var nombremes = new Array ('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 
								'Octubre', 'Noviembre', 'Diciembre');
	var ahora;
	var fecha = new Date();
	var mes = fecha.getMonth();	
	var dia = fecha.getDay();
	var num = fecha.getDate();
	var ano=fecha.getFullYear();
	ahora = diasemana[dia] + ", " + num + " de " + nombremes[mes] + " de " + ano;
	return ahora;
	}

Código HTML

<body onLoad="StartTimer();">		//Si se desea arrancar al cargar la página
...
<div id="reloj"></div>
...
  #8 (permalink)  
Antiguo 06/03/2008, 09:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: crear campos nuevos en un form mediante php

Los dos estan usando el evento onload, fijate en la etiqueta body, y el otro script, lo puedes solucionar quitando los dos scripts y reemplazandolos por:
Código:
window.onload = function() {
       var myMenu;
	myMenu = new SDMenu("my_menu");
	myMenu.init();
        StartTimer();
}
Traslado tu tema a JavaScript.
  #9 (permalink)  
Antiguo 06/03/2008, 09:25
Avatar de SirZoX  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia
Mensajes: 124
Antigüedad: 18 años
Puntos: 2
Re: crear campos nuevos en un form mediante php

gracias GatorV

realmente el tema no iba de JS, aunque nos acabamos metiendo en el, el tema es mas bien de crear campos nuevos con php, aunque bueno.. realmente acabo la solucion por ser de JS y el extra tambien.

como gustes :)
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 04:10.