Foros del Web » Programando para Internet » Javascript »

Como Agregar Filas , que incluye un <Select> e inputs

Estas en el tema de Como Agregar Filas , que incluye un <Select> e inputs en el foro de Javascript en Foros del Web. Pues eso es lo que yo llamo fuerza bruta pq si llegara a seleccionar 80 renglones tu debiste haber puesto las 80 funciones, lo que ...

  #31 (permalink)  
Antiguo 21/08/2008, 15:13
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 17 años, 4 meses
Puntos: 23
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

Pues eso es lo que yo llamo fuerza bruta pq si llegara a seleccionar 80 renglones tu debiste haber puesto las 80 funciones, lo que yo te digo es fuerza logica que por el analisis se logre hacer todo con poco codigo... el problema de hacer lo que tu propones con un bucle es la carga de procesamiento que le pondras a la maquina del cliente pues con cada cambio que haga se hara la actualizacion de TODOS los renglones que ya capturo

p.e. si ya tengo 20 filas y cambio la 18 de todas formas tratara de actualizar la 1,2,3,...,18,19,20 pues con ese for que propones hará un barrido general.

Aqui te dejo el codigo como debe de quedar...

Código:
<?php
$conexion=mysql_connect("localhost","root","000000 ") or die("Problemas en la conexion");
mysql_select_db("empresa",$conexion) or die("Problemas en la selección de la base de datos");
if(isset($_POST['ok'])){
$nombre=array($_POST['name']);
$unidad=array($_POST['unid']);
$cant_mp=array($_POST['cant_mp']);
$desperdicio=array($_POST['desperdicio']);
$cos_mp_pesos=array($_POST['cos_mp_pesos']);
$cos_mp_dolar=array($_POST['cos_mp_dolar']);
$sub_mp_pesos=array($_POST['sub_mp_pesos']);
$sub_mp_dolar=array($_POST['sub_mp_dolar']);
foreach ($nombre as $nombre1){ 
foreach ($unidad as $unidad1){ 
foreach ($cant_mp as $cant_mp1){ 
foreach ($desperdicio as $desperdicio1){ 
foreach ($cos_mp_pesos as $cos_mp_pesos1){ 
foreach ($cos_mp_dolar as $cos_mp_dolar1){
foreach ($sub_mp_pesos as $sub_mp_pesos1){ 
foreach ($sub_mp_dolar as $sub_mp_dolar1){ 
echo "<PRE>";print_r ($nombre1); echo "</PRE>";}
echo "<PRE>";print_r ($unidad1); echo "</PRE>";}
echo "<PRE>";print_r ($cant_mp1); echo "</PRE>";}
echo "<PRE>";print_r ($desperdicio1); echo "</PRE>";}
echo "<PRE>";print_r ($cos_mp_pesos1); echo "</PRE>";}
echo "<PRE>";print_r ($cos_mp_dolar1); echo "</PRE>";}
echo "<PRE>";print_r ($sub_mp_pesos1); echo "</PRE>";}
echo "<PRE>";print_r ($sub_mp_dolar1); echo "</PRE>";}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!--<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PRUEBA FORO</title>
<?php
$var="";
$resump=mysql_query("select * from materia_prima order by codigo",$conexion);
$sub_mp_pesos=10;
$sub_mp_dolar=20;
while ($row1=mysql_fetch_array($resump))
{ 
$var.= '<option value="'.$row1["codigo"].'" alt="'.$row1["unidad"] .'", alt1="'.$row1["costo_mp_pesos"] .'", alt2="'.$row1["costo_mp_dolar"] .'">'.$row1["nombre"].'</option>';
} 
?>
<script language='JavaScript'>
var cont=1
function addRow()
{
cont++;
var indiceFilaFormulario=1;
myNewRow = document.getElementById('tabla').insertRow(-1);
myNewRow.id=indiceFilaFormulario;
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<td><select name="lista_'+cont+'" onChange="listaSeleccionada(this)"><option value="option">Seleccionar</option><? echo $var ?></select></td>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<td><input type="text" size="5" name="code_'+cont+'" disabled/></td>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="25" name="name_'+cont+'" value=""/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="7" name="unid_'+cont+'" value=""/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="7" name="cant_mp_'+cont+'" value="cant"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="7" name="desperdicio_'+cont+'" value="desp"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="7" name="cos_mp_pesos_'+cont+'" value=""/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="7" name="cos_mp_dolar_'+cont+'" value=""/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="7" name="sub_mp_pesos_'+cont+'" value="<?php echo $sub_mp_pesos;?>"/>';
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="text" size="7" name="sub_mp_dolar_'+cont+'" value="<?php echo $sub_mp_dolar;?>"/>';
indiceFilaFormulario++;
}
function borra()
{
var nparrafo=document.getElementById('tabla');
nparrafo.removeChild(nparrafo.lastChild);
}
function listaSeleccionada(lista) { 
arr=lista.name.split("_");
c1="code_"+arr[1];
c2="name_"+arr[1];
c3="unid_"+arr[1];
c4="cos_mp_pesos_"+arr[1];
c5="cos_mp_dolar_"+arr[1];
document.form[c1].value = lista.options[lista.selectedIndex].value; 
document.form[c2].value = lista.options[lista.selectedIndex].text; 
document.form[c3].value = lista.options[lista.selectedIndex].getAttribute("alt");
document.form[c4].value = lista.options[lista.selectedIndex].getAttribute("alt1");
document.form[c5].value = lista.options[lista.selectedIndex].getAttribute("alt2");
}
</script>
</head>
<body>
<form id="form" name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border ="1" id="tabla" color ="0000ff" bordercolor="#FFCC33">
<font color="1166FF"><h4>MATERIA PRIMA</h4></font>
<tr>
<td>
<select name="lista_1" onChange="listaSeleccionada(this)">
<option value="option">Seleccionar</option>
<? echo $var; ?>
</select></td>
<td><input type="text" size="5" name="code_1" disabled/></td>
<td><input type="text" size="25" name="name_1" /></td>
<td><input type="text" size="7" name="unid_1" /></td>
<td><input type="text" size="7" name="cant_mp_1" value="Cantidad" /></td>
<td><input type="text" size="7" name="desperdicio_1" value="Desperdicio"/></td>
<td><input type="text" size="7" name="cos_mp_pesos_1" /></td>
<td><input type="text" size="7" name="cos_mp_dolar_1" /></td>
<td><input type="text" size="7" name="sub_mp_pesos_1" value="<?php echo $sub_mp_pesos;?>" /></td>
<td><input type="text" size="7" name="sub_mp_dolar_1" value="<?php echo $sub_mp_dolar;?>"/></n><br></td>
<td><input type="button" name="boton2" value="(M)" onClick="addRow()"></td>
<td><input type="button" name="borrar" value="[-]" onClick="borra()"></td>
</table>
<td><input type="submit" name="ok" id="ok" value="OK" /></td>
<td><input type="submit" value="VOLVER"></td>
<hr>
</form>
</body>
</html>
Esto que he hecho con tigo de solo darte pistas es lo que hago con mi gente para que vaya desarrollando la logica, que es lo principal en esto del desarrollo pq el lenguaje pues con leer el manual y ya o buscar en internet una instruccion.

La logica aplica a cualquier lenguaje...

suerte
  #32 (permalink)  
Antiguo 25/08/2008, 05:33
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

Hola Avatar, no andube por aca porque andaba en cama, Ya volvi jiijjiij !!!!!
Te cuento que la modificacion anda de primera !!!! Ahora te pregunto una cosa, lo que pretendo hacer es guardar los datos que voy ingresando en las filas cuando apreto ese boton ok, o sea por el momento para hacer las pruebas solo lo muestro por pantalla.
Vamos a ver que puedo hacer, tambien necesito hacer unas casillas que hagan calculos a medidas que se ingresan mas filas.
Gracias, sigo haciendo y te comento !!!!!
__________________
Mail: [email protected]
  #33 (permalink)  
Antiguo 25/08/2008, 09:26
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 17 años, 4 meses
Puntos: 23
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

bueno en tu action pones la direccion a donde la mandas para que se guarde.
dentro de esa pagina pones <? print_r($_POST); echo "<br>"; ?> con esto mostraras todos los campos que envias por metodo post.
Tendras que usar una ligica parecida a la de javascript para accesar dinamicamnete a las variables
$_POST["lista_"+$i]; donde $i seria el contador iniciado en 1

Suerte y si tienes problema con esto ya le pertence al foro de PHP.

Exito.
  #34 (permalink)  
Antiguo 25/08/2008, 11:14
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

hola Avatar !!!!! ya Solucione para poder mostrar los datos que ingreso !!!!!!

Lo hice asi con un for !!!!!

Código PHP:
for ($i=1;$i<4;$i++)
    {
    
print_r($_POST["lista_$i"]); echo "<br>";
    
print_r($_POST["name_$i"]); echo "<br>";
    
print_r($_POST["unid_$i"]); echo "<br>";
    
print_r($_POST["cant_mp_$i"]); echo "<br>";
    
print_r($_POST["desperdicio_$i"]); echo "<br>";
    
print_r($_POST["cos_mp_pesos_$i"]); echo "<br>";
    
print_r($_POST["cos_mp_dolar_$i"]); echo "<br>";
    
print_r($_POST["sub_mp_pesos_$i"]); echo "<br>";
    
print_r($_POST["sub_mp_dolar_$i"]); echo "<br>";
    } 
Pero lo que necesito saber es en que variable se guarda la cantidad de filas que ingreso, para hacer el for desde 1 a esa variable. Es la variable cont, de la funcion Addrow ???????

Y otra cosa, lo que quiero agregarle el form es unos inputs que me hagan una suma, de los totales a medida que agrego las filas, por ejemplo para sumar la columna cantidad !!!!!


Gracias !!!!!!!!!!!
__________________
Mail: [email protected]
  #35 (permalink)  
Antiguo 25/08/2008, 11:25
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 17 años, 4 meses
Puntos: 23
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

bueno pues debes colocar la variable de javascript cont en un input al momento de enviar el formulario (con el evento onsubmit)
  #36 (permalink)  
Antiguo 25/08/2008, 11:39
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

Asi por ejemplo ?????
Código PHP:
myNewCell=myNewRow.insertCell(-1);
myNewCell.innerHTML='<input type="hidden" size="7" name="cont" value=""/>'
Esto esta en la function AddRow(), lo mando oculto y lo tomaria desde PHP, pero esta bien eso ??
No me suena mucho esto, me parece que algo anda mal !!!! :P

Salu2 !!!
__________________
Mail: [email protected]
  #37 (permalink)  
Antiguo 25/08/2008, 12:06
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 17 años, 4 meses
Puntos: 23
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

En efecto esta mal, no debe de agregarse en addrow sino cuando se haga el submit
osea cuando le das a enviar sucede el evento submit (en el form puedes poner onsubmit=function() y ahi es cuando asignas el valor a una variable (que siempre esta ahi) de tipo hidden.

tips investiga en google "onsubmit", "como asignar valores a input con javascript"

Me voy a comer y ya no regreso hasta el miercoles...
Suerte
  #38 (permalink)  
Antiguo 25/08/2008, 12:56
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

ok Gracias sigo investigando este tema
Saludos
__________________
Mail: [email protected]
  #39 (permalink)  
Antiguo 27/08/2008, 07:11
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

Buenas buenas !!!
Como andas Avatar ???!!!

Aca ando con algunas dudas !!!
Te cuento que le hice varias modificaciones al sistemita y pude hacerle esas funciones que te pregunte antes, de a poco va quedando bien !!!

Ahora bien, te acordas que habia una lista desplegable donde yo seleccionaba un item. El tema ahora es que necesito hacerla 3 veces en la misma pagina.

3 veces seria una para Materia Prima como se ve en la pagina, y otras 2 mas que serian para Mano de Obra y Trabajos Terceros.

Lo que habia pensado es en copiar y pegar la que tengo y cambiarle los nombres, que seria lo mas facil, pero por ahi se me confundirian y seria un gran lio !!!!

Ahora viene lo lindo: Como se podria hacer para independizar las funciones de manera que en una pagina yo llame a esas funciones.
Seria para hacerlo mas o menos asi.


Encabezado Titulos
Consultas, etc etc
Funcion1
Funcion2
Funcion3
etc etc etc
Botones [OK] y [VOLVER]

Saludos !!!!!!
__________________
Mail: [email protected]
  #40 (permalink)  
Antiguo 27/08/2008, 07:13
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

Me olvide de dejarte el link jejeje !!!!!

[LINK]
__________________
Mail: [email protected]
  #41 (permalink)  
Antiguo 28/08/2008, 04:11
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

Alguien con alguna idea ?

Gracias
__________________
Mail: [email protected]
  #42 (permalink)  
Antiguo 28/08/2008, 12:15
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

Aca dejo el Link con 2 listas desplegables, de como va el proyectito !!!!

LINK(Full)

Saludos, Espero a alguien le sirva esto !!!!!!
__________________
Mail: [email protected]
  #43 (permalink)  
Antiguo 29/08/2008, 08:53
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 17 años, 4 meses
Puntos: 23
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

Hola colote, pues aqui de regreso y con una carga muy alta de trabajo solo me he podido dar una escapada para un par de post...

Recuerda que yo no puedo ver tu pagina, pero si entiendo que es lo que quieres hacer.
Lo que hiciste inicialmente es la seccion 1 y requieres 2 secciones mas de la misma estructura.

Lo mas rapido es reutilizar lo qu eya tienes hecho con la primer funcion.
Solo que ahora a los input tienes que ponerles (al name y al id) un identificador... p.e. si era lista_1 ahora tendrias mp_lista_1/mo_lista_1/tt_lista_1

y crearias 3 funciones de javascript (tambien debes cambiar los nombres en las funciones.
Si quieres algo un poco mas complejo puedes reutilizar la misma funcion de script y por parametro enviarles el prefijo (mp_/mo_/tt_) y asi como se le hizo para concatenerle el contador, seria concatenarle el prefijo y asi tendrias tus 3 secciones en html y una funcion dinamica para agregarle lineas a cualquiera de las 3...
  #44 (permalink)  
Antiguo 29/08/2008, 09:28
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 6 meses
Puntos: 8
Respuesta: Como Agregar Filas , que incluye un <Select> e inputs

Hola amigo !!
Ya lo estoy haciendo para 2 funciones, cuando lo termine le agrego la 3ra,
Me mande a hacerlo de la llamada fuerza bruta como le decis vos jejeje !!!!

Lo que hice no se si esta bien, pero funciona, o sea duplique las funciones con distintos nombres o sea los name="" son distintos por supuesto. Despues te hago unas consultas sobre una funcion que me acumula unos valores, abri otro post, como era otro tema ......

Saludos !!! Gracias y Estamos en contacto
__________________
Mail: [email protected]
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 16:00.