Foros del Web » Programando para Internet » PHP »

Formulario Dinámico en javascript

Estas en el tema de Formulario Dinámico en javascript en el foro de PHP en Foros del Web. Hola amigos del foro, desarrollando un pequeño sistema me topé con un problema que no se como solucionarlo. Necesito tener 3 campos de texto en ...
  #1 (permalink)  
Antiguo 27/05/2009, 01:02
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
De acuerdo Formulario Dinámico en javascript

Hola amigos del foro, desarrollando un pequeño sistema me topé con un problema que no se como solucionarlo.
Necesito tener 3 campos de texto en linea uno para item, descripción y precio y que se generen 3 campos más debajo de los anteriores, siempre y cuando el usuario lo necesite y así poderlos guardar en arrays, unos para cada uno, osea un array para item, otro para descripción y otro para total.

por ejemplo en una factura se desea ingresar 1 o muchos productos como se desee y cada producto tiene su cantidad, descripción y precio.

Ahora con el tema de la base de datos ya lo tengo solucionado, sólo me gustaría que me pudieran ayudar con estos campos de textos dinámicos en un formulario.

De ante mano MUCHAS GRACIAS.
  #2 (permalink)  
Antiguo 27/05/2009, 01:31
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico con PhP y javascript

hola amigos del foro por acá nuevamente tratando de solucionar esto que comenté al principio, bueno logré hacer un formulario dinámico que pondré el código a continuación, pero mi problema ahora es otro, necesito guardar mis text en arrays, un array para item, otro array para desc y otro array para precio que se generen en el javascript que está en index.php con el fin de devolver 3 arreglos que los mencioné anteriormente item, desc y precio para desmenuzarlo en algo.php

descarga los archivos .php desde

cmmpropiedades.cl/images/dinamico.rar

index.php y algo.php

hasta el momento como podrán ver, los datos se reconocen por nombre y no es la idea ya que no se cuantos datos se generen, en este caso lo mejor es implementar arrays para cada uno, pero el problema no se como implementarlo


Muchas gracias, de antemano muchas gracias
  #3 (permalink)  
Antiguo 27/05/2009, 02:06
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Formulario Dinámico en javascript

Hola:

Bueno, lo de crear los campos dinámicamente... tal vez por la estructura que comentas, te interese usar una tabla, y de ser así, al ser campos de texto, sean parte de un formulario; por lo que creo que simplificaría mucho la tarea, tener esos campos en una fila y sus respectivas celdas, y simplemente clonar esa fila (o tal vez una fila oculta para tenerla en blanco), y añadirla dinámicamente en la tabla... y sobre el tema de los arrays, si esos campos dinámicos son parte del formulario, te bastaría con recorrer esos campos del formulario con el mismo nombre...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 27/05/2009, 18:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico con PhP y javascript

Como que guardar tus text, podrias poner ejemplos?
  #5 (permalink)  
Antiguo 27/05/2009, 18:59
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Formulario Dinámico con PhP y javascript

Crea tus inputs con nombres tipo array:

<input name="item[]" type="text" />
<input name="item[]" type="text" />
<input name="item[]" type="text" />
<input name="item[]" type="text" />

Luego, en tu script que inserta, recorres usando un foreach u algun otro bucle:

foreach($_POST['item'] as $key => $value) {
//inserto
}
  #6 (permalink)  
Antiguo 27/05/2009, 19:29
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico con PhP y javascript

hola abimaelrc el ejemplo está en cmmpropiedades.cl/images/dinamico.rar echale un vistazo please.

lo que dice Ronruby lo se, pero quiero que mi javascript me devuelva esos arrays.

porfa ver el ejemplo en cmmpropiedades.cl/images/dinamico.rar
  #7 (permalink)  
Antiguo 27/05/2009, 19:39
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico en javascript

Hola Caricatos podrías escribir un pequeño ejemplo para verlo, por la cual no he podido resolver mi problema que me tiene con dolor de cabeza.

PD: podrías ver mi ejemplo descargándolo de cmmpropiedades.cl/images/dinamico.rar quizás me estoy yendo por las ramas.


de ante manos muchas gracias
  #8 (permalink)  
Antiguo 27/05/2009, 19:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico con PhP y javascript

Ok estoy usando tu ejemplo ahora mismo y quisiera saber como tu quieres que devuelva o sea que javascript te traiga la información de nuevo a la pagina de index.php?
  #9 (permalink)  
Antiguo 27/05/2009, 20:07
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico con PhP y javascript

la idea es que el javascript me devuelva 3 arrays ya sea en el mismo index.php o con el metodo post me lo envie a algo.php, pero que me devuelva los 3 arreglos para posteriormente desmenuzarlo con un forich.

gracias
  #10 (permalink)  
Antiguo 27/05/2009, 20:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico con PhP y javascript

Pero tu quisieras hacer que cuando le de al boton de crear 3 veces me trae tres campos tres veces. En cada campo se crea como array y luego con javascript tu quieres leer esos tres campos que estan en array para luego unirlos en un solo array los tres campos del primer array y luego enviar esos tres campos en un solo array a algo.php?

Ejemplo
Le di al boton de crear tres veces

item[0] desc[0] precio[0]
item[1] desc[1] precio[1]
item[2] desc[2] precio[2]

los tres campos son array individuales pero tu quieres con javascript unirlos a un solo array ejemplo

var arrayIDP = new array();
arrayIDP[0] = new array(item[0], desc[0], precio[0]);
arrayIDP[1] = new array(item[1], desc[1], precio[1]);
arrayIDP[2] = new array(item[2], desc[2], precio[2]);


Y luego enviarlos a algo.php y alli crear un foreach en php para leerlo?

Si no es así podrias hacer este tipo de grafica para poder entenderte Con todos los pasos que tu quieres hacer. Asi podre crearlo conforme a como tu quieres
  #11 (permalink)  
Antiguo 27/05/2009, 21:23
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico con PhP y javascript

Gracias abimaelrc por seguir respondiendo.

bueno como bien decías lo que necesito es esto

var arrayIDP = new array();

y que genere esto

arrayIDP[0] = new array(item[0], desc[0], precio[0]);
arrayIDP[1] = new array(item[1], desc[1], precio[1]);
arrayIDP[2] = new array(item[2], desc[2], precio[2]);
arrayIDP[3] = new array(item[3], desc[3], precio[3]);
arrayIDP[....] = new array(item[....], desc[.....], precio[....]);

con esto necesito que al presionar el botón "Registrar" lo envíe a algo.php y ahí en algo.php recorrerlo con un foreach y así registrarlo en mi base de datos.

Gracias....

Última edición por Guillex; 27/05/2009 a las 21:43
  #12 (permalink)  
Antiguo 27/05/2009, 22:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico con PhP y javascript

Cuando empeze a trabajar el codigo me di cuenta que lo que tu querias es unir los input item, desc, precio que corresponden a la misma fila para que luego puedas añadirlo en la base de datos. Pues mira logre lo que querias. Lo unico que no lo hice con javascript sino con php. todo esta en algo.php

Pero si tienes que hacer una modificación a index.php

cambia los nombres de los campos
item
desc
precio

a

ele.name = 'item[]'; // 6
ele2.name = 'desc[]'; // 6
ele3.name = 'precio[]'; // 6


Ahora lo que vamos a hacer es esto en algo.php

Código PHP:
<?php
$n
=0;
foreach(
$_REQUEST as $k => $v){
    $
$k $v;
    foreach(
$v as $kk => $vv){
        
//En realidad esta linea no es necesaria pero la coloque porque hubieras encontrado inutil un foreach vacio.
        //Porque en el for que esta debajo de este foreach puede leer la variable $kk;
        
$n $kk;
    }
}

$setArray = array();
for(
$i=0$i<=$n$i++){
    
//Aqui unimos los array en orden yo quiero que tanto el item, desc, precio 0 esten juntos. Luego item, desc, precio 1 este juntos y asi sucesivamente.
    
$setArray[] = array($item[$i], $desc[$i], $precio[$i]);
}


//Este foreach es para que veas que ahora estan unidas en un mismo array, en el segundo foreach de abajo vas a ingresar el query para la base de datos
foreach($setArray as $key => $value){
    foreach(
$value as $key2 => $value2){
        echo 
$value2."<br />";
    }
}
?>

Me dejas saber si eso es lo que quieres

Última edición por abimaelrc; 27/05/2009 a las 23:46
  #13 (permalink)  
Antiguo 28/05/2009, 00:17
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico con PhP y javascript

Hola "abimaelrc"

Muchas Muchas gracias tu ayuda me dejará dormir esta noche o lo que queda de noche
en verdad gracias, una sola cosa en tu código faltaba el signo "=" en $i<=$kk, sin el se comía la último fila del arreglo

for($i=0; $i<=$kk; $i++)

Muchas gracias nuevamente.

Cualquier cosa nos comunicamos por aquí nuevamente.

Buenas Noches
  #14 (permalink)  
Antiguo 28/05/2009, 00:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico con PhP y javascript

ups tienes razon, pero esta bien lo conseguiste
  #15 (permalink)  
Antiguo 28/05/2009, 00:37
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico con PhP y javascript

si, lo conseguí y ahora estoy jugando con el un poco y está funcionando excelentemente excelente jajajajaja

Buena onda
  #16 (permalink)  
Antiguo 28/05/2009, 02:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Formulario Dinámico en javascript

Hola:

He visto que has hecho la misma pregunta en php, no deberías duplicar temas

El código que ví tiene muchos defectos, y la recepción también... si v as a trabajar con arrays en php, lo mejor es que los campos sean los mismos terminados con un juego de corchetes por ejemplo item[], desc[], precio[]... y ya php lo considerará array.

La cabecera creo que estaría mejor como elementos th en vez de td (th -> cabecera de tabla), y evitaría los fieldset (descuadran esa tabla...

Si creas una línea del tipo:
<tbody id="contenedor">
<tr id="clonarle">
<td width="13">&nbsp;</td>
<td width="58"><input type="text" name="item[]" /></td>
<td width="629"><input type="text" name="desc[]" /></td>
<td width="72"><input type="text" name="precio[]" /></td>
<td width="75"><span class="Estilo4">Borrar</span></td>
</tr>
</tbody>

Luego pones:

nuevo = document.getElementById("clonable").cloneNode(true );
// se cambia el id a clonable...
nuevo.id = "clonable_" + cuenta++;
// y lo insertas
document.getElementById("contenedor").appendChild( nuevo);

Con pocos ajustes sería la más sencilla solución.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #17 (permalink)  
Antiguo 28/05/2009, 23:18
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico en javascript

HOLA abimaelrc si estás por ahí quizá me podrías ayudar con esto.

necesito que antes que se envíen los datos a algo.php se genere una suma de la columna precio en javascript al presionar un botón y cuando este javascript tenga el resultado lo devuelva a un campo de texto, así document.form1.total.defaultValue = suma;

donde total es mi campo de texto y suma es la sumatoria de la columna de precios.

por ejemplo:

se genera lo que ya hicimos

item | descripcion | precio
1 blablabla 250
3 blebleble 200
2 bliblibil 100

entonces al presionar un botón, enviamos esta columna precio a un javascript, donde en este javascript lo recorra y realice una suma de los precios donde daría 550 en este ejemplo.
Todo esto con el fin de generar un valor neto o total a pagar.


PD: todo esto en index.php ¿recuerdas?

de ante mano muchas gracias.
estamos en contacto
  #18 (permalink)  
Antiguo 28/05/2009, 23:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico en javascript

Lo mejor es hacerlo en algo.php ya que alla puedo hacer la suma total como quiera. Dame un break a ver si logro eso.
  #19 (permalink)  
Antiguo 28/05/2009, 23:33
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico en javascript

Hola albomael.

la idea es que se genere en index.php porque finalmente lo que quiero hacer es:

tener un precio total con el fin de que se pueda ingresar un descuento y enviar nuevamente a este javascript para generar en definitiva:

precio neto
descuento
precio con iva
precio sin iva

y sin perder el arreglo principal de item, descripcion y precio
  #20 (permalink)  
Antiguo 28/05/2009, 23:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico en javascript

Ok pero explicame con ejemplos más claro para poder hacerlo como tu me pides. Ya logre hacerlo en algo.php pero conforme a lo que vi y pude entender no te va a servir. Pero si te puedo adelantar que vamos a tener que crear otro archivo de php que haga eso para que se me haga facil crearlo y luego lo llamamos con ajax. Pero explicame con ejemplos. Ya yo me se la pagina tuya lo que quiero que hagas es

Le doy al boton de crear 3 veces y escribo en los campos tal esto, tal esto, tal esto y luego asi sucesivamente hasta llegar a donde tu quieres. Perdona que te pida esto pero es para yo poder crearte lo que pides lo más rapido posible si entiendo todo el concepto desde el principio.
  #21 (permalink)  
Antiguo 29/05/2009, 00:12
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico en javascript

ok no problem

por ejmplo en una venta una persona necesita registrar 3 productos unos de cada uno

item | descripcion | precio
1 | casa | 200
1 | dpto | 100
1 | auto | 150

entonces como una factura, boleta, ticket o recibo posee un:

NETO = 450
DESCUETO = (ingresado por el vendedor)
PRECIO CON IMPUESTO = NETO + 0,19% * NETO
PRECIO SIN IMPUESTO = NETO

entonces en index.php al generar los 3 productos que fue lo que ya hicimos ayer me debe sumar toda la columna de precios y ponerla en un campo de texto en el formulario para que así el vendedor pueda ingresar un descuento para que posteriormente se genere un precio con impuesto y otro sin impuesto.

quizá debería ser todo en algo.php, o quizá tú podrías guiarme mejor. mil gracias
  #22 (permalink)  
Antiguo 29/05/2009, 00:41
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico en javascript

descargate esto para que este más claro

cmmpropiedades.cl/images/index2.rar

thanks
  #23 (permalink)  
Antiguo 29/05/2009, 19:50
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Lo baje ayer pero lo vi ahora mismo. Tendrias que esperar un rato para ver como hago con javascript. Si no lograrlo con javascript solo pues lo hare con AJAX, que estoy seguro que ahi si podre hacerlo pero dame un tiempo para poder hacerlo.

De donde vas a sacar el descuento del vendedor?

Última edición por jam1138; 29/05/2009 a las 21:58
  #24 (permalink)  
Antiguo 29/05/2009, 20:14
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico en javascript

Hola abimaelrc Muchas gracias por seguir acá

Si quieres implementarlo con la tecnología que necesites ajax, javascript, php lo que sea.

El descuento se ingresará a mano una vez que se tenga el NETO, el descuento puede ser desde 0 (cero) en adelante y al presionar el botón calcular se re-calcula los otros datos TSI (total sin impuesto) y TCI (Total con impuesto).

eso si que hay un cambio que es el siguiente:

por ejmplo en una venta un vendedor necesita registrar 4 productos unos de cada uno

item | descripcion | precio
1 | casa | 200
1 | dpto | 100
1 | auto | 150
1 | moto | 100

entonces como una factura, boleta, ticket o recibo posee un:

NETO = 550
DESCUENTO = (ingresado por el vendedor) si no se ingresa nada es un cero
PRECIO SIN IMPUESTO = NETO - DESCUENTO
PRECIO CON IMPUESTO = NETO + (0,19 * (NETO - DESCUENTO))

MIL GRACIAS
  #25 (permalink)  
Antiguo 29/05/2009, 23:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico en javascript

ya lo tengo hecho casi completo solo me falta la ultima ecuacion que no la entiendo

NETO + (0,19 * (NETO - DESCUENTO))

que significa 0,19? o como lo pongo en la ecuación

me imagino que impuesto pero como se representa eso en decimales o centesimas o sea
0.19
0.019
1.9
19.0
como lo vas a representar

Última edición por abimaelrc; 29/05/2009 a las 23:14
  #26 (permalink)  
Antiguo 29/05/2009, 23:17
 
Fecha de Ingreso: mayo-2009
Ubicación: Los angeles
Mensajes: 14
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Formulario Dinámico en javascript

0,19 es el porcentaje de impuesto chileno calculable que corresponde al 19% pero por efectos de calculo se multiplica por 0,19,

entonces sería

Total sin impuesto = NETO - Descuento
Total a pagar con impuesto: Total sin impuesto + 0,19 * Total sin impuesto

Ahí si sorry

Thanks
  #27 (permalink)  
Antiguo 29/05/2009, 23:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico en javascript

Tipo he parido este programa, estoy en dolores de parto todavia. Aqui tienes espero que te guste.

Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Calc</title>

<
script type="text/javascript">
<!--
num=0;
function 
crear(obj) {
  
num++;
  
fi document.getElementById('fiel'); // 1
  
contenedor document.createElement('div'); // 2
  
contenedor.id 'div'+num// 3

  
fi.appendChild(contenedor); // 4

  
ele document.createElement('input'); // 5
  
ele2 document.createElement('input'); // 5
  
ele3 document.createElement('input'); // 5
  
ele4 document.createElement('input'); // 5

  
ele.type 'text'// 6
  
ele.name 'item[]'// 6
  
ele.size 5
  
contenedor.appendChild(ele); // 7
  
  
ele2.type 'text'// 6
  
ele2.name 'desc[]'// 6
  
ele2.size 100
  
contenedor.appendChild(ele2); // 7
  
  
ele3.type 'text'// 6
  
ele3.name 'precio[]'// 6
  
ele3.size 7;
  
ele3.onkeyup = function(){addHiddenNeto(this.value)}
  
ele3.onfocus = function(){setHiddenNeto(this.value)}
  
contenedor.appendChild(ele3); // 7



  
ele4.type 'button'// 6
  
ele4.value 'Borrar'// 8
  
ele4.name 'div'+num// 8
  
ele4.id num;
  
ele4.onclick = function () {borrar(this.namethis.parentNode)} // 9
  
contenedor.appendChild(ele4); // 7
}

function 
borrar(objgetP) {
    
getP.childNodes[2].value;
    if(
== ""){0;}
    
document.form1.neto.value parseFloat(document.form1.neto.value)-parseFloat(P);
    
fi document.getElementById('fiel'); // 1 
    
fi.removeChild(document.getElementById(obj)); // 10
    
setNeto();
}
function 
addHiddenNeto(n){
    if(
n==""){n=0;}
    
document.form1.neto.value document.form1.neto.value-document.form1.hiddenNeto.value;
    
document.form1.hiddenNeto.value n;
    
document.form1.neto.value roundNumber(eval(parseFloat(document.form1.neto.value)+parseFloat(document.form1.hiddenNeto.value)),2);
    
setNeto();
}
function 
setHiddenNeto(n){
    if(
n==""){n=0;}
    
document.form1.hiddenNeto.value n;
    
setNeto();
}
function 
setNeto(){
    if(
document.form1.descuento.value == ""){document.form1.descuento.value 0;}
    
document.form1.tsi.value roundNumber(parseFloat(document.form1.neto.value)-parseFloat(document.form1.descuento.value),2);
    
//Se tiene que calcular por 0.19 ya que la matematica para 19% es esa.
    
document.form1.tci.value roundNumber(parseFloat(document.form1.tsi.value)+(parseFloat(0.19) * parseFloat(document.form1.tsi.value)),2);
}
function 
roundNumber(rnumrlength) { // Arguments: number to round, number of decimal places
    
return Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
}
--> 
</script>

<style type="text/css">
<!--
body {
    background-color: #797979;
}
.Estilo4 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; font-weight: bold; color: #999999; }
.Estilo14 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; color: #666666; font-weight: bold; }
.Estilo45 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #333333; }
.Estilo49 {font-family: Verdana, Arial, Helvetica, sans-serif}

.Estilo36 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 18px;
    color: #000000;
}
.Estilo38 {font-size: 12px}
.Estilo48 {color: #999999}
.Estilo4 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; font-weight: bold; color: #999999; }
-->
</style>

</head>
<body>

<form name="form1" method="post" action="algo.php">
<input type="hidden" name="hiddenNeto" value="0">
<table width="960" height="415" border="0" align="center" bgcolor="#FFFFFF">
  <tr>
    <td height="24">&nbsp;</td>
    <td height="24" colspan="9">&nbsp;</td>
    <td width="155" rowspan="2"><div align="center"></div></td>
  </tr>
  
  <tr>
    <td height="107">&nbsp;</td>
    <td height="107" colspan="9">&nbsp;</td>
  </tr>
  <tr>
    <td width="16" height="0"></td>
    <td colspan="10"><table width="881" border="0" align="center">
      <tr>
        <td width="13">&nbsp;</td>
        <td width="58"><div align="center" class="Estilo4">Item</div></td>
        <td width="628"><div align="center" class="Estilo4">Descripci&oacute;n</div></td>
        <td width="82"><div align="center" class="Estilo4">Precio</div></td>
        <td width="78"><span class="Estilo4">Borrar</span></td>
      </tr>
      <tr>
        <td colspan="5"><fieldset id="fiel"></fieldset><input name="button" type="button" onClick="crear(this)" value="Crear" /></td>
      </tr>
    </table></td>
  </tr>
  
  
  <tr>
    <td height="25" rowspan="5">&nbsp;</td>
    <td width="86" rowspan="5">&nbsp;</td>
    <td width="102" rowspan="5">&nbsp;</td>
    <td width="102" rowspan="5">&nbsp;</td>
    <td width="102" rowspan="5">&nbsp;</td>
    <td width="102" rowspan="5">&nbsp;</td>
    <td width="102" rowspan="5">&nbsp;</td>
    <td width="113">&nbsp;</td>
    <td colspan="2">
      <label>      </label>
      <div align="center">
        <input name="fin" type="checkbox" id="fin" onClick="calcular(this)" value="entregado">
      </div>      </td>
    <td class="Estilo45">Fin de proceso </td>
  </tr>
  <tr>
    <td width="113"><div align="right">
      <input name="Calcular" type="button" value="Calcular" onclick="setNeto()" />
    </div></td>
    <td colspan="2" class="Estilo45">Neto</td>
    <td>
           <label>
        <input name="neto" type="text" id="neto" value="0" readonly>
        </label>    
    </td>
  </tr>
  <tr>
    <td width="113">&nbsp;</td>
    <td colspan="2" class="Estilo45">Desc</td>
    <td><input name="descuento" type="text" id="descuento" onkeyup="setNeto()"></td>
  </tr>
  <tr>
    <td width="113">&nbsp;</td>
    <td colspan="2" class="Estilo45">TSI</td>
    <td><input name="tsi" type="text" id="tsi" readonly></td>
  </tr>
  <tr>
    <td width="113">&nbsp;</td>
    <td colspan="2" class="Estilo45">TCI</td>
    <td><input name="tci" type="text" id="tci" readonly></td>
  </tr>
  <tr>
    <td height="38">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td colspan="2">&nbsp;</td>
    <td><input type="submit" name="button2" id="button" value="Registrar" /></td>
  </tr>
</table>
</form>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html> 
  #28 (permalink)  
Antiguo 29/05/2009, 23:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Formulario Dinámico en javascript

Ustedes con dinero trabajan con decimales y centecimas me refiero

el dolar puede ser

1.99 $

Es que encontre un error en el sistema que si tu escribes
.## o sea me refiero a cualquier numero te va a salir un NaN y quiero saber si me va a ser necesario trabajarlo por si vendieran algo que costara menos de 1. Como es el sistema monetario de ustedes y cuanto representa en $ dolares

Si no quieres que salga el error tendrias que escribir ejemplo 0.19 y no .19
  #29 (permalink)  
Antiguo 03/04/2010, 18:05
 
Fecha de Ingreso: octubre-2007
Mensajes: 8
Antigüedad: 16 años, 6 meses
Puntos: 0
Formulario Dinámico en javascript PARTE1

[URL="http://img239.imagevenue.com/img.php?image=40609_FORMULARIO_122_335lo.jpg"]http://img239.imagevenue.com/img.php?image=40609_FORMULARIO_122_335lo.jpg[/URL]

Código Javascript:
Ver original
  1. //PREFIJOS:
  2. //
  3. //ar=acronimo de array
  4. //b=acronimo de Boolean;
  5. //i= " de integer
  6. //s= " de string
  7. //o= " de objeto
  8. //e=elemento de DOM
  9. //p=procedimiento (en POO llamado metodo)
  10. //f=funcion o float
  11. //frm=formulario
  12. //div=Div
  13. //hid=Hidden
  14. //txt=Text
  15. //
  16. //**************************************************************
  17. //***********ZONA DE PARAMETROS DE LOS OBJETOS *****************//
  18. //**************************************************************
  19. ////Estas son las propiedades basicas para crear los elementos.
  20. //si quieres las puedes cambiar para ver el efecto que tienen
  21. //
  22. //arDIVFONDO: Son los parametros para el Div de fondo que evitara interaccionar con
  23. //los elementos (controles) que hay detras.  Los que programan en .NET es el
  24. //equivalente a la opcion MODAL del formulario.
  25. var arDIVFONDO=new Array();
  26. arDIVFONDO['id']="divFondo";
  27. arDIVFONDO['Alto']="0px";
  28. arDIVFONDO['Ancho']="0px";
  29. arDIVFONDO['ColorFondo']="#000";
  30. arDIVFONDO['Opacidad']=".5";
  31. arDIVFONDO['Filtro']="alpha(opacity=50)";
  32. arDIVFONDO['Posicion']="absolute";
  33. arDIVFONDO['z']="1";
  34. arDIVFONDO['y']="0px";
  35. arDIVFONDO['x']="0px";
  36. arDIVFONDO['Padding']="0px";
  37.  
  38. //arDIVFORM: Contenedor del formulario ojo con z pq su padre no es el arDIVFONDO
  39. //si fuera asi, todo se veria con opacidad asi que este, esta encima con z=2
  40. var arDIVFORM=new Array();
  41. arDIVFORM['id']="divForm";
  42. arDIVFORM['Alto']="55px";
  43. arDIVFORM['Ancho']="499px";
  44. arDIVFORM['ColorFondo']="white";
  45. arDIVFORM['Opacidad']=".99";
  46. arDIVFORM['Filtro']="alpha(opacity=100)";
  47. arDIVFORM['Posicion']="absolute";
  48. arDIVFORM['z']="2";
  49. arDIVFORM['y']="0px";
  50. arDIVFORM['x']="0px";
  51. arDIVFORM['Padding']="10px";
  52.  
  53. //arFORM: Los atributos del formulario que ira dentro de divForm
  54. var arFORM=new Array();
  55. arFORM['id']="frmEditar";
  56. arFORM['Nombre']="frmEditar";
  57. arFORM['Metodo']="post";
  58. arFORM['Accion']="contacto.php";
  59. arFORM['Alto']="auto";
  60. arFORM['Ancho']="auto";
  61. arFORM['ColorFondo']="auto";
  62. arFORM['Posicion']="relative";
  63. arFORM['z']="2";
  64. arFORM['y']="0px";
  65. arFORM['x']="0px";
  66. arFORM['Padding']="0";
  67.  
  68. //arTabla: La tabla que utilizare para ordenar los controles
  69. //se que esto no cumple con W3C Strict, pero si me ponia con fieldset se me
  70. //iba hacer muy largo. 2Filas una la cabecera y otra con los controles
  71. var arTABLA=new Array();
  72. arTABLA['id']="tabDetalles";
  73. arTABLA['Filas']=2;
  74. arTABLA['Columnas']=5;
  75. arTABLA['Alto']="auto";
  76. arTABLA['Ancho']="auto";
  77. arTABLA['ColorFondo']="auto";
  78. arTABLA['Posicion']="relative";
  79. arTABLA['z']="2";
  80. arTABLA['y']="0px";
  81. arTABLA['x']="0px";
  82. arTABLA['Borde']="1px solid red";
  83.  
  84. //arHIDDEN: Mi campo hidden necesario para enviarlo con POST y capturarlo con
  85. //PHP
  86. var arHIDDEN=new Array();
  87. arHIDDEN['Tipo']="hidden";
  88. arHIDDEN['id']="hidFila";
  89. arHIDDEN['Nombre']="hidFila";
  90. arHIDDEN['Valor']="5";          //Modificar, es el campo clave del registro
  91.  
  92. //arTXTCONCEP: Campo de texto "CONCEPTO"
  93. var arTXTCONCEP=new Array();
  94. arTXTCONCEP['Tipo']="text";
  95. arTXTCONCEP['id']="txtConcep";
  96. arTXTCONCEP['Nombre']="txtConcep";
  97. arTXTCONCEP['Valor']="Diseño de tarjetas + impresion";  //Modificar
  98. arTXTCONCEP['Ancho']="250px";
  99.  
  100. //arTXTCONCEP: Campo de texto "CANTIDAD"
  101. var arTXTCANT=new Array();
  102. arTXTCANT['Tipo']="text";
  103. arTXTCANT['id']="txtCant";
  104. arTXTCANT['Nombre']="txtCant";
  105. arTXTCANT['Valor']=" 300,00 ";  //Modificar
  106. arTXTCANT['Ancho']="70px";
  107.  
  108. //arBOTCANCELAR: Sirve para destruir las dos capas y permite seguir interactuando
  109. //con el formulario original
  110. var arBOTCANCELAR=new Array();
  111. arBOTCANCELAR['Tipo']="button";
  112. arBOTCANCELAR['id']="botCancelar";
  113. arBOTCANCELAR['Nombre']="botCancelar";
  114. arBOTCANCELAR['Valor']="Cancelar";
  115. arBOTCANCELAR['Ancho']="auto";
  116.  
  117. //arSUBACEPTAR: Sirve para enviar la informacion del formulario. (El submit de toda la vida).
  118. var arSUBACEPTAR=new Array();
  119. arSUBACEPTAR['Tipo']="submit";
  120. arSUBACEPTAR['id']="subAceptar";
  121. arSUBACEPTAR['Nombre']="subAceptar";
  122. arSUBACEPTAR['Valor']="Aceptar";
  123. arSUBACEPTAR['Ancho']="auto";
  124.  
  125. //**************************************************************
  126. //**************  FIN ZONA DE PARAMETROS  ********************//
  127. //**************************************************************
  128.  
  129. //--- AQUI EMPIEZA LO BUENO -- //
  130.  
  131. //VARIABLES "GLOBALES" (por lo de la G ;0)
  132. var oGVentana=null;   //Pq "o"? pq esta clase no gestiona ningun elemento DOM
  133. var eGDivFondo=null;
  134. var eGDivForm=null;
  135. var eGFormulario=null;
  136. var eGTabla=null;
  137. var eGHidFila=null;
  138. var eGTxtConcep=null;
  139. var eGTxtCant=null;
  140. var eGbotCancelar=null;
  141. var eGSubAceptar=null;
  142.  
  143. var bGFrmCreado=false;
  144.  
  145.  
  146. //CLASE VENTANA
  147. function CVentana()
  148. {
  149.     var iAltura = 0; // height
  150.     var iAnchura = 0; // width
  151.  
  152.     var pCalculaTamano=function()
  153.     {
  154.         if( typeof( window.innerHeight ) == 'number' )
  155.         {
  156.             iAltura = window.innerHeight;
  157.             iAnchura = window.innerWidth;
  158.         }
  159.         else if( document.body && document.body.clientHeight )
  160.         {
  161.             //IE 4 o superior
  162.             iAltura = document.body.clientHeight;
  163.             iAnchura = document.body.clientWidth;
  164.         }
  165.     }
  166.  
  167.     pCalculaTamano();
  168.     this.iAncho=iAnchura;
  169.     this.iAlto=iAltura;
  170.  
  171.     this.getAncho=function()
  172.     {
  173.         return this.iAncho+"px";
  174.     }
  175.     this.getAlto=function()
  176.     {
  177.         return this.iAlto+"px";
  178.     }
  179. }
  180.  
  181. //CLASE FONDO
  182. //sIdPadre es el ID del div donde se insertara este, si se pasa null el padre
  183. //sera document.body
  184. function CDiv(arDiv, sIdPadre)
  185. {
  186.     var ePadre=document.body;
  187.     this.eDiv=document.createElement('div');
  188.  
  189.     with(this.eDiv)
  190.     {
  191.         id=arDiv['id'];
  192.         style.height=arDiv['Alto'];
  193.         style.width=arDiv['Ancho'];
  194.         style.backgroundColor=arDiv['ColorFondo'];
  195.         style.opacity=arDiv['Opacidad'];
  196.         style.filter=arDiv['Filtro'];//PARA IE
  197.         style.position=arDiv['Posicion'];
  198.         style.zIndex=arDiv['z'];
  199.         style.top=arDiv['y'];
  200.         style.left=arDiv['x'];
  201.         style.padding=arDiv['Padding'];
  202.     }
  203.  
  204.     if(sIdPadre==null)
  205.     {
  206.         ePadre.appendChild(this.eDiv);
  207.     }
  208.     else
  209.     {
  210.         ePadre=document.getElementById(sIdPadre);
  211.         ePadre.appendChild(this.eDiv);
  212.     }
  213.  
  214.     //GETS
  215.     this.getID=function()
  216.     {
  217.         return this.eDiv.id;
  218.     }
  219.     this.getWidth=function()
  220.     {
  221.         return this.eDiv.offsetWidth;
  222.     }
  223.  
  224.     this.getHeight=function()
  225.     {
  226.         return this.eDiv.offsetHeight;
  227.     }
  228.  
  229.     this.getTop=function()
  230.     {
  231.         return this.eDiv.offsetTop;
  232.     }
  233.  
  234.     this.getLeft=function()
  235.     {
  236.         return this.eDiv.offsetLeft;
  237.     }
  238.  
  239.     //SETS
  240.     this.setWidth=function(sValor)
  241.     {
  242.         this.eDiv.style.width=sValor;
  243.     }
  244.  
  245.     this.setHeight=function(sValor)
  246.     {
  247.         this.eDiv.style.height=sValor;
  248.     }
  249.  
  250.     this.setTop=function(sValor)
  251.     {
  252.         this.eDiv.style.top=sValor;
  253.     }
  254.  
  255.     this.setLeft=function(sValor)
  256.     {
  257.         this.eDiv.style.left=sValor;
  258.     }
  259. }

Última edición por ImNoob007; 03/04/2010 a las 18:29 Razón: Vincular imagen
  #30 (permalink)  
Antiguo 03/04/2010, 18:09
 
Fecha de Ingreso: octubre-2007
Mensajes: 8
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Formulario Dinámico en javascript PARTE 2 FIN.

Código Javascript:
Ver original
  1. //CLASE FORMULARIO
  2. function CForm(arForm, sIdPadre)
  3. {
  4.     var ePadre=document.body;
  5.     this.eForm=document.createElement('form');
  6.  
  7.     with(this.eForm)
  8.     {
  9.         id=arForm['id'];
  10.         setAttribute("name", arForm['Nombre']);
  11.         setAttribute("method", arForm['Metodo']);
  12.         setAttribute("action", arForm['Accion']);
  13.  
  14.         style.height=arForm['Alto'];
  15.         style.width=arForm['Ancho'];
  16.         style.backgroundColor=arForm['ColorFondo'];
  17.         style.position=arForm['Posicion'];
  18.         style.zIndex=arForm['z'];
  19.         style.top=arForm['y'];
  20.         style.left=arForm['x'];
  21.         style.padding=arForm['Padding'];
  22.         /*style.border="1px solid green";*/
  23.     }
  24.  
  25.     if(sIdPadre==null)
  26.     {
  27.         ePadre.appendChild(this.eForm);
  28.     }
  29.     else
  30.     {
  31.         ePadre=document.getElementById(sIdPadre);
  32.         ePadre.appendChild(this.eForm);
  33.     }
  34.  
  35.     //GETS
  36.     this.getID=function()
  37.     {
  38.         return this.eForm.id;
  39.     }
  40.     this.getWidth=function()
  41.     {
  42.         return this.eForm.offsetWidth;
  43.     }
  44.  
  45.     this.getHeight=function()
  46.     {
  47.         return this.eForm.offsetHeight;
  48.     }
  49.  
  50.     this.getTop=function()
  51.     {
  52.         return this.eForm.offsetTop;
  53.     }
  54.  
  55.     this.getLeft=function()
  56.     {
  57.         return this.eForm.offsetLeft;
  58.     }
  59.  
  60.     //SETS
  61.     this.setWidth=function(sValor)
  62.     {
  63.         this.eForm.style.width=sValor;
  64.     }
  65.  
  66.     this.setHeight=function(sValor)
  67.     {
  68.         this.eForm.style.height=sValor;
  69.     }
  70.  
  71.     this.setTop=function(sValor)
  72.     {
  73.         this.eForm.style.top=sValor;
  74.     }
  75.  
  76.     this.setLeft=function(sValor)
  77.     {
  78.         this.eForm.style.left=sValor;
  79.     }
  80. }
  81.  
  82. //CLASE INPUT boton, texto, hidden submit..
  83. function CInput(arInput, eParent)
  84. {
  85.     var ePadre=document.body;
  86.     this.eInput=document.createElement('input');
  87.  
  88.     with(this.eInput)
  89.     {
  90.         setAttribute("type", arInput['Tipo']);
  91.         id=arInput['id'];
  92.         setAttribute("name", arInput['Nombre']);
  93.         setAttribute("value", arInput['Valor']);
  94.         //Estilo
  95.         style.width=arInput['Ancho'];
  96.     }
  97.  
  98.     if(arInput['Tipo']=="button")
  99.     {
  100.         //Registramos los eventos
  101.         //http://www.w3.org/TR/DOM-Level-2-Events/events.html
  102.         if(document.all) //ES IE
  103.         {
  104.             this.eInput.attachEvent("onclick", pCancelar);
  105.         }
  106.         else //OTROS NAVEGADORES
  107.         {
  108.             this.eInput.addEventListener("click", pCancelar, true);
  109.         }
  110.     }
  111.  
  112.  
  113.     function pCancelar()
  114.     {
  115.         var eDivAux = document.getElementById(eGDivForm.getID());
  116.         document.body.removeChild(eDivAux);
  117.  
  118.         eDivAux = document.getElementById(eGDivFondo.getID());
  119.         document.body.removeChild(eDivAux);
  120.  
  121.         //Destruyo mis objetos
  122.         oGVentana=null;
  123.         eGDivFondo=null;
  124.         eGDivForm=null;
  125.         eGFormulario=null;
  126.         eGTabla=null;
  127.         eGHidFila=null;
  128.         eGTxtConcep=null;
  129.         eGTxtCant=null;
  130.         eGbotCancelar=null;
  131.         eGSubAceptar=null;
  132.  
  133.         //Actualizo mi variable
  134.         bGFrmCreado=false;
  135.     }
  136.  
  137.     if(eParent==null)
  138.     {
  139.         ePadre.appendChild(this.eInput);
  140.     }
  141.     else
  142.     {
  143.         eParent.appendChild(this.eInput);
  144.     }
  145.  
  146.     //GETS
  147.     this.getID=function()
  148.     {
  149.         return this.eInput.id;
  150.     }
  151.  
  152.     this.getValor=function()
  153.     {
  154.         return this.eInput.value;
  155.     }
  156.  
  157.     this.getWidth=function()
  158.     {
  159.         return this.eInput.offsetWidth;
  160.     }
  161.  
  162.     //SETS
  163.     this.setWidth=function(sValor)
  164.     {
  165.         this.eInput.style.width=sValor;
  166.     }
  167. }
  168.  
  169. //CLASE TABLA
  170. function CTabla(arTabla, sIdPadre)
  171. {
  172.     var arTextos=new Array();
  173.     arTextos[0]="F";
  174.     arTextos[1]="CONCEPTO";
  175.     arTextos[2]="CANTIDAD";
  176.     arTextos[3]="";
  177.     arTextos[4]="";
  178.  
  179.     var ePadre=document.body;
  180.     this.eTable=document.createElement('table');
  181.  
  182.     with(this.eTable)
  183.     {
  184.         id=arTabla['id'];
  185.         setAttribute("name", arTabla['Nombre']);
  186.  
  187.         style.height=arTabla['Alto'];
  188.         style.width=arTabla['Ancho'];
  189.         style.backgroundColor=arTabla['ColorFondo'];
  190.         style.position=arTabla['Posicion'];
  191.         style.zIndex=arTabla['z'];
  192.         style.top=arTabla['y'];
  193.         style.left=arTabla['x'];
  194.         style.padding=arTabla['Padding'];
  195.         style.border=arTabla['Borde'];
  196.     }
  197.     //Genero la tabla
  198.     for(var i=0; i<arTabla['Filas']; i++)
  199.     {
  200.         var auxTR=document.createElement("tr");
  201.         for(var j=0; j<arTabla['Columnas']; j++)
  202.         {
  203.             var auxTD=document.createElement("td");
  204.             var auxText;
  205.             if(i==0) //Es la cabecera
  206.             {
  207.                 auxText=document.createTextNode(arTextos[j]);
  208.                 auxTD.appendChild(auxText);
  209.             }
  210.             else //El resto de filas
  211.             {
  212.                 switch (j)
  213.                 {
  214.                     case 0:
  215.                        eGHidFila = new CInput(arHIDDEN, auxTD);
  216.                        auxText=document.createTextNode(eGHidFila.getValor());
  217.                        auxTD.appendChild(auxText);
  218.                         break
  219.                     case 1:
  220.                        eGTxtConcep = new CInput(arTXTCONCEP, auxTD);
  221.                         break
  222.                     case 2:
  223.                        eGTxtCant = new CInput(arTXTCANT, auxTD);
  224.                         break
  225.                     case 3:
  226.                        eGSubAceptar = new CInput(arSUBACEPTAR, auxTD);
  227.                         break
  228.                     case 4:
  229.                        eGbotCancelar = new CInput(arBOTCANCELAR, auxTD);
  230.                        break
  231.                     default:
  232.                         document.write("Esta columna no existe!!");
  233.                 }
  234.             }
  235.             auxTR.appendChild(auxTD);
  236.         }
  237.         this.eTable.appendChild(auxTR);
  238.     }
  239.  
  240.     if(sIdPadre==null)
  241.     {
  242.         ePadre.appendChild(this.eTable);
  243.     }
  244.     else
  245.     {
  246.         ePadre=document.getElementById(sIdPadre);
  247.         ePadre.appendChild(this.eTable);
  248.     }
  249.  
  250.     //GETS
  251.     this.getID=function()
  252.     {
  253.         return this.eTable.id;
  254.     }
  255.     this.getWidth=function()
  256.     {
  257.         return this.eTable.offsetWidth;
  258.     }
  259.  
  260.     this.getHeight=function()
  261.     {
  262.         return this.eTable.offsetHeight;
  263.     }
  264.  
  265.     this.getTop=function()
  266.     {
  267.         return this.eTable.offsetTop;
  268.     }
  269.  
  270.     this.getLeft=function()
  271.     {
  272.         return this.eTable.offsetLeft;
  273.     }
  274.  
  275.     //SETS
  276.     this.setWidth=function(sValor)
  277.     {
  278.         this.eTable.style.width=sValor;
  279.     }
  280.  
  281.     this.setHeight=function(sValor)
  282.     {
  283.         this.eTable.style.height=sValor;
  284.     }
  285.  
  286.     this.setTop=function(sValor)
  287.     {
  288.         this.eTable.style.top=sValor;
  289.     }
  290.  
  291.     this.setLeft=function(sValor)
  292.     {
  293.         this.eTable.style.left=sValor;
  294.     }
  295. }
  296.  
  297. //Procedimiento que vincularas a un evento Click y que dara como resultado
  298. //la generacion del formulario
  299. function pClick()
  300. {
  301.     //Objeto ventana obtiene el tamaño de la pantalla
  302.     //necesario para el centrado y el recubrimiento de los controles
  303.     oGVentana = new CVentana();
  304.  
  305.     //El elemento Div con opacidad
  306.     eGDivFondo= new CDiv(arDIVFONDO,null);
  307.     eGDivFondo.setWidth(oGVentana.getAncho());
  308.     eGDivFondo.setHeight(oGVentana.getAlto());
  309.  
  310.     //El elemento Div contenedor del formulario
  311.     eGDivForm = new CDiv(arDIVFORM, null);
  312.    
  313.     //Centro el contenedor en pantalla
  314.     var aux=(eGDivFondo.getWidth()-eGDivForm.getWidth())/2 + "px";
  315.     eGDivForm.setLeft(aux);
  316.     aux=(eGDivFondo.getHeight()-eGDivForm.getHeight())/2 + "px";
  317.     eGDivForm.setTop(aux);
  318.  
  319.     //Creo el Formulario y lo adjunto a su padre el eGDivForm
  320.     eGFormulario=new CForm(arFORM, eGDivForm.getID());
  321.  
  322.     //Creo la Tabla (para tabular mis controles) y lo adjunto a su padre eGFormulario
  323.     eGTabla=new CTabla(arTABLA, eGFormulario.getID());
  324.  
  325.     //Indico que se ha generado el formulario, esto me servira para
  326.     //el evento que se ejecuta cuando se redimensiona la pantalla
  327.     bGFrmCreado=true;
  328. }
  329.  
  330. window.onresize = function ()
  331. {
  332.     if(bGFrmCreado)
  333.     {
  334.         //Creo nuevamente oVentana para actualizar su tamaño
  335.         oGVentana = new CVentana();
  336.         //Redimensiono el Div con opacidad
  337.         eGDivFondo.setWidth(oGVentana.getAncho());
  338.         eGDivFondo.setHeight(oGVentana.getAlto());
  339.  
  340.         //centro divForm
  341.         var aux=(eGDivFondo.getWidth()-eGDivForm.getWidth())/2 + "px";
  342.         eGDivForm.setLeft(aux);
  343.         aux=(eGDivFondo.getHeight()-eGDivForm.getHeight())/2 + "px";
  344.         eGDivForm.setTop(aux);
  345.     }
  346. }

TE CREAS UN ARCHIVO.JS y lo vinculas en tu html. Te viene a pelo esta clase. Pq te genera un formulario dinamico con 3 campos CLAVE - DESCRIPCION - PRECIO y como esta parametrizado lo puedes modificar a tu gusto.

En tu evento onload del body puedes llamar al procedimiento pClick(). Lo suyo seria ejecutarlo con un evento click de un boton.

Última edición por ImNoob007; 03/04/2010 a las 18:12 Razón: Faltaba Informacion
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 19:00.