Foros del Web » Programando para Internet » Javascript »

Formulario dinámico

Estas en el tema de Formulario dinámico en el foro de Javascript en Foros del Web. Hola a todos, Resulta que tengo un formulario en el cual hay un enlace a un popup, dentro del popup tengo otro pequeño formulario con ...

  #1 (permalink)  
Antiguo 08/09/2005, 13:37
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta Formulario dinámico

Hola a todos,

Resulta que tengo un formulario en el cual hay un enlace a un popup, dentro del popup tengo otro pequeño formulario con opciones para agregar al formulario del fondo, lo que quiero saber es como pasar las variables que asigno en el popup al formulario del fondo, guardarlos momentáneamente para cuando envie el formulario del fondo esos datos se ingresen en la tabla de mi base de datos.
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #2 (permalink)  
Antiguo 09/09/2005, 08:40
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
andinistas,

ahora que te leo me acuerdo de que te dejé con el tema pendiente

La verdad es que no acabo de comprender exactamente lo que pretendes hacer en global. Describe un ejemplo algo más completo de lo que debería de hacer la aplicación que quieres
  #3 (permalink)  
Antiguo 09/09/2005, 08:56
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta Hola

Cita:
Iniciado por tunait
andinistas,

ahora que te leo me acuerdo de que te dejé con el tema pendiente

La verdad es que no acabo de comprender exactamente lo que pretendes hacer en global. Describe un ejemplo algo más completo de lo que debería de hacer la aplicación que quieres
Hola Tunait, te he hecho una gráfica y la puedes ver haciendo clic aquí

Te explico de nuevo;

tengo un formulario en donde hay un boton que al hacer clic muestra el popup con otro formulario para agregar (n) opciones, cada vez que yo agrego uno, esos datos se deben almacenar dinámicamente en el formulario general (el de fondo) y cuando envio mis datos todos esas datos ingresados mediante el popup tienen que ser guardadas como datos en una base de datos.

no sé si me expliqué bien
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #4 (permalink)  
Antiguo 09/09/2005, 09:09
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Pues.... sigo a oscuras

verás, dices

Cita:
tengo un formulario en donde hay un boton que al hacer clic muestra el popup con otro formulario para agregar (n) opciones
pero .. ¿a qué te refieres con n opciones? opciones de un selector? campos extra? ¿qué encontramos en el form de la popup?

Por eso te decía que pusieras un ejemplo más concreto, tipo:

"en un form tengo tantos campos de tipo tal y tal que recoge tal tipo de datos y quiero que al abrir la popup desde un form que tengo con campos así con tal tipo de datos al hacer esto se debe crear un campo dinámicamente en la página padre dentro del formulario"

...o algo similar. Es que sin saber si quieres guardar esos datos en campos o en variables es dificil crear un ejemplo
  #5 (permalink)  
Antiguo 09/09/2005, 09:15
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola tunait, disculpa que no te pueda hacer comprender mi pregunta.

En el popup que yo muestro se encuentra un formulario con un select box con opciones, cada opción representa un área de enfoque para un proyecto que estoy haciendo. ok cada vez que el usuario llene esos datos (en el popup) y al darle guardar o enviar, esos datos deben incluirse de forma temporal en el formulario de fondo.

Lo que sucede es que en el select box pueden haber 5 opciones por llenar por lo tanto habrian en el formulario de fondo 5 opciones por guardar.

entonces ya una vez el usuario elija del popup e ingrese todos sus datos en el formulario de fondo quedan almacenados estos de forma temporal y cuando le de clic a el boton enviar o guardar debo recoger estos datos que estan almacenados temporalmente y guardarlos en mi base de datos.
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #6 (permalink)  
Antiguo 09/09/2005, 09:16
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Lo que yo entiendo :


1. Un Formulario Base que dice por ejemplo productos.
2. Un botón Agregar producto
3. Al clickar en Agregar Producto se abre una Pop Up y escoges por ejemplo Atún (Que me gusta mucho.)
4. Das Click en Aceptar de la Pop up
5. En la ventana "Original" aparece Atún cargado.
6. Si quieres agregar más productos vuelves a abrir la Pop up y lo Escoges
7. Si solo quieres atún haces click en Guardar y se guarda en la tbla pedidos o lo que sea.



Supongo que esto necesita PHP etc, pero una Maestra como tú sin duda dará una Solución igualemente maestra.
  #7 (permalink)  
Antiguo 09/09/2005, 09:19
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
Lo mas comun en estos casos es lo siguiente:
Utilizar un textrea oculto con una cadena que almacene los datos ke yan sido "guardados" delimitados por algun caracter de referencia, un pipe "|" x ejemplo para los renglones y un ";" x ejemplo para las columnas:

Ejemplo:

Nombre Edad EMail
ABC 25 [email protected]
DEF 26 [email protected]
ghi 22 [email protected]

La cadena kedaria así:
ABC;25;[email protected]|DEF;26;[email protected]|ghi;22;ghi@j kl.com
(aunke el textarea acepta saltos de linea, te recomiendo mas utlizar algun caracter de esos ke son muy poco empleados por el usuario, tambien habrá ke validar que el usuario no introduzca nunca ninguno de los caracteres delimitadores como parte de un dato en el formulario, en los faq's hay varios metodos de validacion, echales una mirada)

y con esto utlizas la funciones de javascript para convertir cadenas a arrays (split) y manejarlo como un vector bidimencional

Espero "haiga" sido claro y sobre todo ke te halla servido mi ayuda

Saludos
__________________
Yo tan sólo se, que no he senado
  #8 (permalink)  
Antiguo 09/09/2005, 09:19
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Cita:
Iniciado por ADIÓS_ADRIANA
Lo que yo entiendo :


1. Un Formulario Base que dice por ejemplo productos.
2. Un botón Agregar producto
3. Al clickar en Agregar Producto se abre una Pop Up y escoges por ejemplo Atún (Que me gusta mucho.)
4. Das Click en Aceptar de la Pop up
5. En la ventana "Original" aparece Atún cargado.
6. Si quieres agregar más productos vuelves a abrir la Pop up y lo Escoges
7. Si solo quieres atún haces click en Guardar y se guarda en la tbla pedidos o lo que sea.



Supongo que esto necesita PHP etc, pero una Maestra como tú sin duda dará una Solución igualemente maestra.

Hola bueno tu lo has visto de forma diferente y es válido el ejemplo, algo similar quiero yo.

__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #9 (permalink)  
Antiguo 09/09/2005, 09:28
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
ok, va tomando algo de forma, igual sigo teniendo lagunas ....

Cita:
5. En la ventana "Original" aparece Atún cargado.
vale, pero en dónde se muestra "Atún"? en un campo del form que existía previamente?




p.d. el atún está bueno pero ¿has probado la caballa? (no vale el chiste de la mujer del yeguo)
  #10 (permalink)  
Antiguo 09/09/2005, 09:31
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
En mi caso en el formulario "original" no está ese campo, esos campos están en otra tabla de la base de datos (previo a esto ya tengo un diseño de la bd) sólo que los relaciono por el id.

hay problema con eso?
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #11 (permalink)  
Antiguo 09/09/2005, 09:31
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
El metodo para abrir un popup y ke puedas pasar datos entre el mismo y su parent es el sig:
La ke manda hablar el popup:
<html>
<script>
function abrirModal(){
retorno = showModalDialog("modal.html", "_blank", 'dialogWidth:480px;dialogHeight:640px;dialogTop:75 px;dialogLeft:125px;status=no');
alert(retorno);
}
</script>
<body>
<a href="javascript:abrirModal();">prueba</a>
</body>
</html>

El popup
<html>
<body>
<a href="#" onclick="javascript: parent.window.returnValue='Hello world'; window.close(); ">Llamada a retornar</a>
</body>
</html>

Saludos
__________________
Yo tan sólo se, que no he senado
  #12 (permalink)  
Antiguo 09/09/2005, 09:54
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
ok

Cita:
Iniciado por onlykfk
El metodo para abrir un popup y ke puedas pasar datos entre el mismo y su parent es el sig:
La ke manda hablar el popup:
<html>
<script>
function abrirModal(){
retorno = showModalDialog("modal.html", "_blank", 'dialogWidth:480px;dialogHeight:640px;dialogTop:75 px;dialogLeft:125px;status=no');
alert(retorno);
}
</script>
<body>
<a href="javascript:abrirModal();">prueba</a>
</body>
</html>

El popup
<html>
<body>
<a href="#" onclick="javascript: parent.window.returnValue='Hello world'; window.close(); ">Llamada a retornar</a>
</body>
</html>

Saludos

Ok está bien tu ejemplo pero ahora como hago para pasar los datos que ingreso desde el popup hacia el formulario "original" ?
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #13 (permalink)  
Antiguo 09/09/2005, 10:01
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Cita:
Iniciado por tunait
ok, va tomando algo de forma, igual sigo teniendo lagunas ....

vale, pero en dónde se muestra "Atún"? en un campo del form que existía previamente?

Atún se escoge de una Lista desplegable de la ventana de Pop up.


Es como tener dos canastas, una Vacía El formulario Original, que se va llenando de lo que escoges en la lista que está en la Pop Up.


Cita:
Iniciado por tunait
p.d. el atún está bueno pero ¿has probado la caballa? (no vale el chiste de la mujer del yeguo)
Atún y con Ensalada de Tomate...
  #14 (permalink)  
Antiguo 09/09/2005, 10:12
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
Iniciado por andinistas
En mi caso en el formulario "original" no está ese campo, esos campos están en otra tabla de la base de datos (previo a esto ya tengo un diseño de la bd) sólo que los relaciono por el id.
Osea, que el formulario "original" va contra otra tabla de la base de datos.

¿En qué momento se deberá enviar lo seleccionado en la popup a esa otra tabla de la base de datos?

Cita:
Iniciado por ADIÓS_ADRIANA
Atún se escoge de una Lista desplegable de la ventana de Pop up.
yap, la pregunta era en dónde se guardan en la página madre, dentro del form o fuera y si existe el contenedor donde se ha de guardar el dato y en caso afirmativo qué tipo de contenedor, si un campo de formulario o una variable
  #15 (permalink)  
Antiguo 09/09/2005, 10:22
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Haber que dificil es explicar una idea en mente.

los datos se guardan en la página madre dentro del form, y los datos que viajan del popup al formulario form ya vienen con sus identificadores y valores, total tengo que reunirlos y meterlos en una tabla
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #16 (permalink)  
Antiguo 09/09/2005, 10:26
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
Es como te comentaba, utilizas el textarea oculto con los valores de la tabla y cada que agregues un valor nuevo, vuelves a redibujar la tabla con lo ke ya venia mostrando mas el retorno del popup, la cual puedes identificar con un id...

Saludos
__________________
Yo tan sólo se, que no he senado
  #17 (permalink)  
Antiguo 09/09/2005, 10:29
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
ok

Cita:
Iniciado por onlykfk
Es como te comentaba, utilizas el textarea oculto con los valores de la tabla y cada que agregues un valor nuevo, vuelves a redibujar la tabla con lo ke ya venia mostrando mas el retorno del popup, la cual puedes identificar con un id...

Saludos
Ok tienes algún ejemplo que demuestre lo que dices? yo no sé como proceder vía javascript.
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #18 (permalink)  
Antiguo 09/09/2005, 10:31
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Si Claro, la Idea es que se llena el Formulario Original Por eje. Texbox de Nombre con lo que se escoja de la Pop Up.
  #19 (permalink)  
Antiguo 09/09/2005, 11:25
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
Cita:
Iniciado por andinistas
Ok tienes algún ejemplo que demuestre lo que dices? yo no sé como proceder vía javascript.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<script language=javascript>
function redibujaTabla(datos){
var arrCols, nRow = document.all.mytabla.rows.length;
datos = datos.substring(0,datos.length-2); //Para kitarle el ultimo pipe
arrRengDatos = datos.split("|");

if(arrRengDatos.length<=0) { return; }

//Insertas el nuevo renglon
document.all.mytabla.insertRow(nRow);

//Lees el ultimo registro agregado
arrCols = arrRengDatos[arrRengDatos.length-1].split(";");

//Agregas las columnas
for(i = 0; i < 2; i++){
document.all.mytabla.rows[document.all.mytabla.rows.length-1].insertCell(i);
}

//Llenas con los datos del ultimo registro
for(i = 0; i < 2; i++){
document.all.mytabla.rows[document.all.mytabla.rows.length-1].cells[i].innerText = arrCols[i];
}
}
function agregaRenglon(tmp){
tmp.value += "|nuevo;valor"; //En tu caso sera el retorno que te da el WindowModal
//Solo ke para simplificarte el ejemplo
redibujaTabla(tmp.value);
}
</script>
</head>

<body>
<table id="mytabla" border="1">
<thead><tr><td>Campo 1</td><td>Campo 2</td></tr></thead>
<tbody>
<tr>
<td>Hello</td>
<td>World</td>
</tr>
</tbody>
</table>
</body>
<textarea name="txtdatos" style="display:none"></textarea>
<input type="button" onclick="agregaRenglon(txtdatos);" value="Agregar valor">
</html>



Saludos
__________________
Yo tan sólo se, que no he senado
  #20 (permalink)  
Antiguo 09/09/2005, 12:39
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
onlykfk


Esa es la ide pero escogiendo de una Pop Up y que cargie lo que se escoje...
  #21 (permalink)  
Antiguo 09/09/2005, 15:42
 
Fecha de Ingreso: agosto-2005
Mensajes: 192
Antigüedad: 18 años, 8 meses
Puntos: 0
Tengo el mismo problema



sabes tengo algo similar.

Me gustaria saber algo mas sobre el respecto un ejemplo practico y completo ... lo que necesito es lo siguiente:

Tengo un formulario que base que inserta datos de una tabla beneficiario con los campos (Nombre, nit, direccion etc)

Existe otro llamado documento que tiene los campos (numero de documento, valor, nit del beneficiario, nombre beneficiario etc.) donde nit del beneficiario es FK

Lo que se busca es:

1. Dar clic sobre un boton buscar beneficiario dentro del formulario documento y que aparescan todos los datos del beneficiario.

2. Escoger el beneficiario (osea el campo nit o FK)
4. Das Click en agregar
5. Y que en la ventana documento aparesca cargado el nit.
6.Ccontinuar llenado el formulario documento y dar clic en boton enviar para agregar los datos en la tabla documento.

Gracias por la colaboracion que me puedan brindar.

  #22 (permalink)  
Antiguo 12/09/2005, 08:19
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
ok

Cita:
Iniciado por higi


sabes tengo algo similar.

Me gustaria saber algo mas sobre el respecto un ejemplo practico y completo ... lo que necesito es lo siguiente:

Tengo un formulario que base que inserta datos de una tabla beneficiario con los campos (Nombre, nit, direccion etc)

Existe otro llamado documento que tiene los campos (numero de documento, valor, nit del beneficiario, nombre beneficiario etc.) donde nit del beneficiario es FK

Lo que se busca es:

1. Dar clic sobre un boton buscar beneficiario dentro del formulario documento y que aparescan todos los datos del beneficiario.

2. Escoger el beneficiario (osea el campo nit o FK)
4. Das Click en agregar
5. Y que en la ventana documento aparesca cargado el nit.
6.Ccontinuar llenado el formulario documento y dar clic en boton enviar para agregar los datos en la tabla documento.

Gracias por la colaboracion que me puedan brindar.


Ok esa es mi idea pero no lo he logrado con javascript,

alguien conoce alguna página donde expliquen este ejemplo?



.
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #23 (permalink)  
Antiguo 12/09/2005, 08:48
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
hola a todos,

sin animo de enredar mas las cosas te dejo un script que saque de javascript.com y al cual le agregué unas cuantas cosas mas, y que creo que se puede adaptar a lo que queres.(y sin necesidad de utilizar un pop up, ya que si se tiene un bloqueador se complican las cosas).

<html>
<HEAD>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT LANGUAGE="JavaScript">
cat=new Array();
cat[0]=new Array();
cat[0][0]="honda";
cat[0][1]="chevrolet";
cat[0][2]="renault";
cat[0][3]="ford";
cat[0][4]="vw";
cat[0][5]="bmw";
cat[0][6]="qqqqhonda";
cat[0][7]="cqqqqqhevrolet";
cat[0][8]="qqqqqqqrenault";
cat[0][9]="qqqqqford";
cat[0][10]="qqqqqqvw";
cat[0][11]="qqqqqqqqbmw";
cat[0][12]="wwwwwwwrenault";
cat[0][13]="wwwwwwford";
cat[0][14]="wwwwwwvw";
cat[0][15]="wwwwwwwbmw";
cat[1]=new Array();
cat[1][0]="mercedez";
cat[1][1]="volvo";
cat[1][2]="scania";
cat[2]=new Array();
cat[2][0]="kawasaki";
cat[2][1]="honda-m";

function verificar()
{
if (document.forms['myForm']['cantidad'].value <1)
{ alert("No hay campos seleccionados para el informe"); return; }

if (document.forms['myForm']['ordenar0'].value == "x")
{ alert("No ha espesificado ningun orden");document.forms['myForm']['ordenar0'].focus(); return; }

if (document.forms['myForm']['cantidad'].value > 1 && document.forms['myForm']['cantidad'].value<4)
{ confirmar=confirm("Solo ha seleccionado menos de 4 campos. Desea continuar");
if (confirmar){
document.forms['myForm'].submit();
}
}else{

document.forms['myForm'].submit();
}
}
function res(){
for (rr=4; rr>0;rr--){
document.getElementById(rr).style.visibility="hidd en";
document.getElementById((rr*10)).value="x";
document.getElementById('esconder').style.visibili ty="hidden";
}
}
function llenar(para,desde){
if (desde==null){
var xx=1;
for (p=0; p<cat.length;p++){
for (o=0; o<cat[p].length;o++){
para.options[xx]=new Option(document.myForm.seleccionar.options[p+1].value+"."+cat[p][o],document.myForm.seleccionar.options[p+1].value+"."+cat[p][o],false,false);
xx++
}
}
}else{
document.getElementById('esconder').style.visibili ty="visible";
hasta=desde.options.length;
qw=1;
qe=1
while (qw<hasta){
if (desde.options[qw].value==desde.value){
hasta-1;
qw++
}else{
para.options[qe]=new Option(desde.options[qw].value,desde.options[qw].value,false,false);
qw++;
qe++
}
}
}
}
function borrar(){
var caja = document.myForm.listRight.options;
if (caja.selectedIndex==-1){
alert("Debe elegir al menos un items");
}else{
for (q=caja.length-1; q>-1; q--){
if (caja[q].selected==true){
if (q==caja.length-1){
caja[q]=null;
}else{
for (r=q+1; r<caja.length;r++){
caja[r-1].value=caja[r].value;
caja[r-1].text=caja[r].text;
caja[r-1].selected=false;
}
caja[caja.length-1]=null;
}
}
}
}
document.myForm.cantidad.value=document.myForm.lis tRight.options.length;
document.myForm.cantidad2.value=document.myForm.li stLeft.options.length+" de "+cat[document.myForm.seleccionar.selectedIndex-1].length;
}

function cambiar(valor,depurar){
var opcr = document.myForm.listRight.options;
var opc = document.myForm.listLeft.options;
var opco = document.myForm.omitidos.options;
var sel = document.myForm.seleccionar.value;
var coincidencia=0;
var depurado=0;
var encontro="no"
if (opcr.length<1){
opcrll=1;
com2=0
}else{
opcrll=opcr.length;
}
cuenta=cat[valor-1].length;
if (valor>0){
valor=valor-1;
for (i=0; i<cuenta;i++){
for (z=0;z+1<opcrll+1;z++){
com1=sel+"."+cat[valor][i];
if (opcr.length<1){
com2=0;
}else{
com2=opcr[z].value;
}
if (com1==com2 && document.myForm.filtrar.checked){
opco[coincidencia]=new Option(com1,com1,false,false);
coincidencia++;
encontro="si";
}
}
if (encontro=="no"){
opc[depurado]=new Option(com1,com1,false,false);
depurado++;
}else
encontro="no";

}

if (depurado<depurar){
for (x = depurar; x > depurado-1; x--){
opc[x]=null;
}
}
if (opco.length>coincidencia-1){
for (y = opco.length; y > coincidencia-1; y--){
opco[y]=null;
}

}
}
document.myForm.veromitidos.value=coincidencia+" items Omitidos";

if (coincidencia>0){
document.getElementById('combo').style.visibility= "visible";
}else{
document.getElementById('combo').style.visibility= "hidden";
document.getElementById('omitidos').style.visibili ty="hidden";
document.getElementById('botones').style.visibilit y="hidden";
}
document.myForm.cantidad.value=document.myForm.lis tRight.options.length;
document.myForm.cantidad2.value=document.myForm.li stLeft.options.length+" de "+cat[document.myForm.seleccionar.selectedIndex-1].length;
}
function orden(pres,fut){
opt=document.myForm.listRight.options;
tope=opt.length;
if (fut>-1 && fut<tope){
proVal=opt[fut].value;
proTex=opt[fut].text;
opt[fut].value=opt[pres].value;
opt[fut].text=opt[pres].text;
opt[pres].value=proVal;
opt[pres].text=proTex;
opt[fut].selected=true;
opt[pres].selected=false;
}
}
function moveDualList( srcList, destList, moveAll )

{
if ( ( srcList.selectedIndex == -1 ) && ( moveAll == false ) )

{

return;

}



newDestList = new Array( destList.options.length );



var len = 0;



for( len = 0; len < destList.options.length; len++ )

{

if ( destList.options[ len ] != null )

{

newDestList[ len ] = new Option( destList.options[ len ].text, destList.options[ len ].value, destList.options[ len ].defaultSelected, destList.options[ len ].selected );

}

}



for( var i = 0; i < srcList.options.length; i++ )

{

if ( srcList.options[i] != null && ( srcList.options[i].selected == true || moveAll ) )

{
newDestList[ len ] = new Option( srcList.options[i].text, srcList.options[i].value, srcList.options[i].defaultSelected, srcList.options[i].selected );
len++;

}

}
for ( var j = 0; j < newDestList.length; j++ )

{

if ( newDestList[ j ] != null )

{

destList.options[ j ] = newDestList[ j ];

}

}
for( var i = srcList.options.length - 1; i >= 0; i-- )

{

if ( srcList.options[i] != null && ( srcList.options[i].selected == true || moveAll ) )

{
srcList.options[i] = null;

}

}


document.myForm.cantidad.value=document.myForm.lis tRight.options.length;
document.myForm.cantidad2.value=document.myForm.li stLeft.options.length+" de "+cat[document.myForm.seleccionar.selectedIndex-1].length;
}
function ver(cual){
if (cual=="criterios"){
for (divx=1; divx<5; divx++){
capa=document.getElementById(divx).style.visibilit y;
selex=document.getElementById((divx*10)).value;
if (selex=="x"){
alert("El "+divx+"° criterio de orden está vacio");
divx=100;
}else{
if (capa=="hidden"){
document.getElementById(divx).style.visibility="vi sible";
divx=100;
}
}
}
}else{
document.getElementById('omitidos').style.visibili ty="visible";
document.getElementById('botones').style.visibilit y="visible";
}
}
</script>
</HEAD>


sigue mas abajo...
__________________
by Capitán Buscapina
.
  #24 (permalink)  
Antiguo 12/09/2005, 08:49
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
<BODY OnLoad="llenar(document.myForm.ordenar0)">
<div align="center"><center> <!-- TEST DUAL LIST --> <form ACTION="otra.html" METHOD="get" name="myForm" onSubmit="verificar()">
<table border="0"> <tr> <td colspan="3"> <select name="seleccionar" onChange="cambiar(document.myForm.seleccionar.sele ctedIndex,document.myForm.listLeft.options.length) ">
<option value="selelecc" selected>Seleccionar una categoria</option> <option value="autos">autos</option>
<option value="camiones">camiones</option> <option value="motos">motos</option>
</select> <input type="text" name="cantidad2" maxlength="2" style="width:55;">
<input type="checkbox" name="filtrar" value="si" checked > Filtrar iguales </td><td width="98">
<div align="center">Ordenar </div></td></tr> <tr> <td width="142"> <select multiple size="12" style="width:170" name="listLeft">
<option value=" "> </option> </select> <input id="combo" type="button" name="veromitidos" style="visibility:hidden;width:170" onClick="ver()">
<select id="omitidos" name="omitidos" style="visibility:hidden;width:170" size="3" multiple onClic="document.myForm.valorx.value:'true'">
<option value=" "> </option> </select> </td><td> <div align="center"><br> <br>
<br> <br> <br> <input type="button" onclick="moveDualList( this.form.listLeft, this.form.listRight, false )"

name="Add" value=" &gt; "> <br> <input type="button" onclick="moveDualList( this.form.listLeft, this.form.listRight, true )"

name="Add" value=">>"> <BR> <br> <br> <br> <br> <br> <br> <div id="botones" style="visibility:hidden;">
<input type="button" onClick="moveDualList( this.form.omitidos, this.form.listRight, false )"

name="Add" value=" &gt; "> <br> <input type="button" onClick="moveDualList( this.form.omitidos, this.form.listRight, true )"

name="todos" value=">>"> </div></div></td><td width="170"> <div align="center">
<input type="button" onClick="orden(document.myForm.listRight.options.s electedIndex,document.myForm.listRight.options.sel ectedIndex-1)" name="arriba" value="arriba">
<input type="button" onClick="orden(document.myForm.listRight.options.s electedIndex,document.myForm.listRight.options.sel ectedIndex+1)" name="abajo2" value="abajo">
<input type="button" name="Button" value=" X " onClick="borrar(document.myForm.listRight.options. selected)">
<input type="text" name="cantidad" maxlength="2" style="width:20;" value="0">
<br> <select multiple size="16" style="width:170" name="listRight"> </select>
</div></td><td width="300"> <div id="criteriosdeorden" align="center"> <p> <input type="button" name="nuevocriterio" value="Nuevo Criterio" onClick="ver('criterios')">
<input type="button" Id="esconder" name="xx" value="Resetear" onClick="res()" style="visibility:hidden;">
<br> <select name="ordenar0" id="10" OnChange="llenar(document.myForm.ordenar1,document .myForm.ordenar0)">
<option value="x" selected> </option> </select> <input type="radio" name="ord0" value="asc" checked>
<input type="radio" name="ord0" value="dsc"> <br> <div id="1" style="visibility:hidden;"><select name="ordenar1" id="20" OnChange="llenar(document.myForm.ordenar2,document .myForm.ordenar1)">
<option value="x" selected> </option> </select> <input type="radio" name="ord1" value="asc" checked>
<input type="radio" name="ord1" value="dsc"> </div><div id="2" style="visibility:hidden;"><select name="ordenar2" id="30" OnChange="llenar(document.myForm.ordenar3,document .myForm.ordenar2)">
<option value="x" selected> </option> </select> <input type="radio" name="ord2" value="asc" checked>
<input type="radio" name="ord2" value="dsc"> </div><div id="3" style="visibility:hidden;"><select name="ordenar3" id="40" OnChange="llenar(document.myForm.ordenar4,document .myForm.ordenar3)">
<option value="x" selected> </option> </select> <input type="radio" name="ord3" value="asc" checked>
<input type="radio" name="ord3" value="dsc"> </div><div id="4" style="visibility:hidden;"><select name="ordenar4" id="50" >
<option value="x" selected> </option> </select> <input type="radio" name="ord4" value="asc" checked>
<input type="radio" name="ord4" value="dsc"> </div><br> <br> <br> <br> <br> <br>
<input type="button" name="Submit" value="Submit" onClick="verificar()"> </div></td></tr>
</table></form></center></div><p><center> </center>
</body>
</html>



ACLARACION:
Se pude llenar dinamicamente antes de cargar la pagina con php o asp.
Si no , utilizando AJAX , se puede hacer bastante mas dinamico.
Si no te sirve, pues le servirá a otro.


saludos
__________________
by Capitán Buscapina
.
  #25 (permalink)  
Antiguo 12/09/2005, 09:01
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
OK bueno el ejemplo, como tu dices lo puede aprovechar otro, pero el ejemplo que queremos va con un popup y ademas trae campos tipo textbox para ingresar datos.

gracias


.
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #26 (permalink)  
Antiguo 12/09/2005, 09:02
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
Tu página de llamada...
<html>
<head>
<script language=javascript>
function redibujaTabla(datos){
var arrCols, nRow = document.all.mytabla.rows.length;
datos = datos.substring(0,datos.length); //Para kitarle el ultimo pipe
arrRengDatos = datos.split("|");

if(arrRengDatos.length<=0) { return; }
//Insertas el nuevo renglon
document.all.mytabla.insertRow(nRow);
//Lees el ultimo registro agregado
arrCols = arrRengDatos[arrRengDatos.length-1].split(";");
//Agregas las columnas
for(i = 0; i < 2; i++){
document.all.mytabla.rows[document.all.mytabla.rows.length-1].insertCell(i);
}
//Llenas con los datos del ultimo registro
for(i = 0; i < 2; i++){
document.all.mytabla.rows[document.all.mytabla.rows.length-1].cells[i].innerText = arrCols[i];
}
}
function agregaRenglon(tmp){
var newVal = showModalDialog("modal.html", "_blank", 'dialogWidth:480px;dialogHeight:640px;dialogTop:75 px;dialogLeft:125px;status=no');
if (!newVal) { return; }
tmp.value += "|" + newVal;
redibujaTabla(tmp.value);
}
</script>
</head>
<body>
<table id="mytabla" border="1">
<thead><tr><td>Campo 1</td><td>Campo 2</td></tr></thead>
<tbody>
</tbody>
</table>
</body>
<textarea name="txtdatos" style="display:none"></textarea>
<input type="button" onclick="agregaRenglon(txtdatos);" value="Agregar valor">
</html>

Tu página Modal
(modal.html)
<html>
<body>
<p>Valor 1: <input type="text" name="valor1"></p>
<p>Valor 2: <input type="text" name="valor2"></p>
<p>
<a href="#" onclick="javascript: parent.window.returnValue=document.all['valor1'].value + ';' + document.all['valor2'].value; window.close(); ">Agregar datos</a>
<a href="#" onclick="javascript: parent.window.returnValue=false; window.close(); ">Cancelar</a>
</p>
</body>
</html>


SALUDOS....
__________________
Yo tan sólo se, que no he senado
  #27 (permalink)  
Antiguo 15/09/2005, 13:18
 
Fecha de Ingreso: agosto-2005
Mensajes: 192
Antigüedad: 18 años, 8 meses
Puntos: 0
Oye ... ahora ya casi.

Me gusto lo que vi pero la idea va en camino.

El popup ... en dicha ventana debe visualizar de forma ascendente los datos consultados guardados en una tabla de mi BD, el popup debe permitirme seleccionar el campo que voy a agregar al formulario que se encuentra en otra pagina, expecificamente a un cuadro de texto el cual dicho dato ira insertado posteriormente en otra tabla.



Que tal.
  #28 (permalink)  
Antiguo 16/09/2005, 08:55
 
Fecha de Ingreso: agosto-2005
Mensajes: 192
Antigüedad: 18 años, 8 meses
Puntos: 0
Tengo otra inquietud

Me gusto lo que vi pero la idea va en camino.

El popup ... en dicha ventana debe visualizar de forma ascendente los datos consultados guardados en una tabla de mi BD, el popup debe permitirme seleccionar el campo que voy a agregar al formulario que se encuentra en otra pagina, expecificamente a un cuadro de texto el cual dicho dato ira insertado posteriormente en otra tabla.



Gracias por la colaboracion que me puedas brindar.

  #29 (permalink)  
Antiguo 21/09/2005, 09:16
 
Fecha de Ingreso: agosto-2005
Mensajes: 192
Antigüedad: 18 años, 8 meses
Puntos: 0
Exclamación Ahora si me podrias colaborar ???

Ahora si me podrias colaborar ???

En espera de tu respuesta....

  #30 (permalink)  
Antiguo 21/09/2005, 11:15
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
Cita:
Iniciado por higi
Me gusto lo que vi pero la idea va en camino.

El popup ... en dicha ventana debe visualizar de forma ascendente los datos consultados guardados en una tabla de mi BD, el popup debe permitirme seleccionar el campo que voy a agregar al formulario que se encuentra en otra pagina, expecificamente a un cuadro de texto el cual dicho dato ira insertado posteriormente en otra tabla.

Gracias por la colaboracion que me puedas brindar.
Hola, perdon ke no he contestado, pero es ke he andado fuera de mi oficina (y cuando vacaciono me olvido de la programacion )

Mira, Sinceramente no entiendo del todo tu situacion, pero segun yo, creo ke esto te puede ayudar

Si observas, en el ejemplo, utilizo un textarea oculto, esto te da la ventaja de ke si lo pones dentro de los tags <form></form>, la cadena contenida la puedes enviar por medio de un submit con los datos con los que se dibuja la tabla o igual tu puedes crear un script para validar la cadena contenida antes de realizar un Submit

De kualkier forma si esto no te sirve, se mas explicito en tu problema y con gusto veo en ke te pueda ayudar

Saludos
__________________
Yo tan sólo se, que no he senado
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 18:16.