PRG6SUB1-$300; PRG6SUB2-$600; PRG6SUB1-$50; PRG6SUB1-$100 y quede asi:
PRG6SUB1-$450;PRG6SUB2-$600 y por ultimo guardar esos valores en la bd asi ordenados.
![Negando](http://static.forosdelweb.com/fdwtheme/images/smilies/negar.gif)
| |||
Ordenar, acumular y guardar en la bd ordenados!!! Hola, pido perdon por anticipado, ya que no se mucho de programacion. La consulta mia es la siguiente: Tengo una tabla con 2 columnas generada en forma dinamica con javascript, yo quiero ahora que a todos esos datos de esa tabla, los ordene x la primer columna y los acumule para cada valor distinto y me muestre uno solo. Ej: PRG6SUB1-$300; PRG6SUB2-$600; PRG6SUB1-$50; PRG6SUB1-$100 y quede asi: PRG6SUB1-$450;PRG6SUB2-$600 y por ultimo guardar esos valores en la bd asi ordenados. ![]() |
| |||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! Hola como estas? Vos ya tenes acumulados esos datos PRG6SUB1-$450;PRG6SUB2-$600 ?... Si tenes la tabla estaria bueno que la pongas, asi sabemos que variables utilizas para ayudarte de manera mas rapida :) |
| ||||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! hola, primero que nada tendrias que mezclar js con php para logralo (es la posibilidad por la que me inclino) usare jquery para simplificar algunos temas. supongamos que tienes esto en tu pagina:
Código HTML:
Ver original y en miscript.php que es el que prosesa el formulario tienes esto:
Código PHP:
Ver original con eso adaptado andaria bien. espero te sirva saludos. |
| |||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! LA VERDAD "NSD" IMPRESIONANTE LO RAPIDO Q CONTESTEASTE, YO HUBIERA TARDADO AÑOS EN ESCRIBIR TODO ESO!!. BUENO PARA CONTESTAR A pablo_exeg, UNA DE MIS DUDAS ES ESA, DE COMO GUARDAR EL CONTENIDO LO Q GENERE DINAMICAMENTE Y PASARLO A PHP,PARA DESPUES GUARDARLO EN LA BD. PONGO EL CODIGO.
Código:
Y ACA EL ARCHIVO PHPvar m1=0; var orden=1; var monto=0; var pro=0; var caras=0; var expes=0; var anios=0; function calcula() { //aca empieza a chequear si el expte lo puso bien caras=caract.value; expes=num.value; anios=anio.value; if( caras == null || caras.length == 0 ) {alert("FALTA LA CARACTERISTICA DEL EXPEDIENTE");} if( expes == null || expes.length == 0 ) {alert("FALTA EL EXPEDIENTE");} if( anios == null || anios.length == 0 ) {alert("FALTA EL AÑO DEL EXPEDIENTE");} if (anios.length !=4) { alert("EL AÑO DEBE TENER 4 DIGITOS"); anio.value=""; } //aca termina de chequear si el expte lo puso bien monto=montos.value;//guardo el valor del input if (isNaN(monto)) { alert("NO ES UN NUMERO"); montos.value="";//lo borro exit; } if( monto == null || monto.length == 0) { alert("CAMPO VACIO"); montos.value="";//lo borro exit; } monto=parseFloat(monto);//lo parseo m1=parseFloat(m1);//parseo el acumulador // m1=m1.toFixed(2); m1=m1+monto;//voy acumulando el input del monto montos.value="";//lo borro pro=programa.options[programa.selectedIndex].value;//guardo el valor de los seleccionado en el select document.getElementById('aca').innerHTML = m1;//guardo en la etiqueta "aca" el valor del acumulador var linea=document.getElementById('distribucion');//guardo la referncia de la linea var ultima=linea.rows.length;//obtengo la cantidad de celdas de la fila var row=linea.insertRow(ultima);//inserto 1 fila var celda1=row.insertCell(0);//inserto 1 fila var celda2=row.insertCell(1);//inserto 1 fila var celda3=row.insertCell(2);//inserto 1 fila celda1.innerHTML=pro;//pongo el destino en la celda celda2.innerHTML=monto;//pongo el monto en la celda celda3.innerHTML="<input class='medium green' type='button' value='Eliminar' onclick='eliminarUsuario(this)'>";//pongo el boton eliminar return false; } function eliminarUsuario(obj) { var oTr = obj; while(oTr.nodeName.toLowerCase()!='tr') { oTr=oTr.parentNode; } var d=oTr.childNodes[1].innerHTML; var root = oTr.parentNode; root.removeChild(oTr); m1=m1-d; document.getElementById('aca').innerHTML = m1; }
Código:
HASTA ACA LLEGUE CON MUCHAS DIFICULTADES PARA HACER ESTO. <table id="tablaUsuarios" border="2" name="tablaprog" > <tbody><tr style="text-align: center;" id="fila"> <td style="width: 268px; text-align: center;">Programa</td> <td style="width: 331px; text-align: center;">Monto</td> <td style="width: 338px; text-align: center;">Acciones</td> </tr> <tr> <td style="width: 268px; text-align: left;"> <!--aca va el select inteligente--> <select class="fancy" name="programa" id="sel"> <?php //$cone=mysql_connect("localhost","charly163","charly") or die("mal la conexion"); //mysql_select_db("prueba",$cone) or die("mal la base"); include_once('cone.php'); Conectate(); $cons=mysql_query("select idprograma,programa from programa"); while($r=mysql_fetch_array($cons)) { echo "<option class='fancy' value='$r[programa]'>$r[idprograma] | $r[programa]</option>"; } ?> </select></td> <td style="width: 331px; text-align: center;"><input id="text1" name="montos" type="text"></td> <td style="width: 338px;"><input class="small orange" onclick="calcula()" value="Calcula" type="button"><input class="small pink" onclick="" value="Graba" type="button"><a class="button pop" href="#ABAJO">Abajo</a></td> </tr> </tbody></table> </div> <!--</form>--> <!-- HR.alt2 --> <hr class="alt2"> <!-- /HR.alt2 --> <!-- Tabla para mostrar monto de la preliminar --> <table> <tbody><tr> <td style="width: 388px; text-align: right;"><span style="font-weight: bold;">MONTO TOTAL</span><br> </td> <td style="width: 155px; text-align: center; font-weight: bold;" id="aca"><br></td> <th style="width: 390px;">MONTO TOTAL<br></th> </tr> </tbody> </table> <!-- /Tabla para mostrar monto de la preliminar --> <!-- HR.alt1 --> <hr class="alt1"> <!-- Pestañas con distribucion y mas opciones --> <ul class="tabs center"> <li><a href="#tabc1">Resultado de la distribucion</a></li> <li><a href="#tabc2">Realizar Minuta</a></li> <li><a href="#tabc3">Realizar OP</a></li> </ul> <div id="tabc1" class="tab-content"> <table class="sortable" id="distribucion"> <thead> <tr><th>PROGRAMA</th> <th>MONTO</th><th>ACCIONES</th></tr> </thead> <tbody> <tr id="linea"><td id="destino"></td><td id="plata"></td><td></td></tr> <!-- <tr><td>Joshua</td> <td>4325.63</td> <td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr> <tr><td>Peter</td><td>5698.44</td> <td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr> <tr><td>Mary</td><td>7654.82</td><td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr> <tr><td>Gretty</td><td>6732.85</td><td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>--> </tbody> </table> </div> <div id="tabc2" class="tab-content">Tab2 has an icon.</div> <div id="tabc3" class="tab-content">Tab3</div> |
| |||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! 1)me olvide de poner que le agregue al achivo javascript de arriba, que guardo los id de las 2 columnas de la tabla generada dinamicamente //aca obtengo el id de cada una de los programas creados dinamicamente celda1.id=orden; var g=celda1.id; celda2.id=orden; 2) $("#datos"), este es el id del formulario?? |
| |||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! Si, pero yo a la tabla no la tengo llena con datos, sino que la tabla se completa dinamicamente, lo cual no se como preguntar por el id de cada fila no borrada (recorda que cada fila nueva trae incorporada un boton de "eliminar" que borra esa fila), y a ese id de fila guardarlo en un vector (id,valor), para luego ordenarlo y enviarlo a la bd. Pido perdon si, esto ya esta respondido enteramente en el codio q puso NSD, pero como esta medio complicado para entender, x lo menos para mi, busco otra solucion. Me explico?? |
| ||||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! Cita: Si, disculpa que te lo diga sin anestesia, pero la mejor solución para tu problema es que estudies programación en serio.Pido perdon si, esto ya esta respondido enteramente en el codio q puso NSD, pero como esta medio complicado para entender, x lo menos para mi, busco otra solucion. Me explico?? Si quieres un code for dummies, entonces nunca avanzarás... ¿Por qué mejor no te esfuerzas, consigues un buen manual del lenguaje y te pones con cuidado a tratar de entender lo que te han dado? Al menos eso podrías intentarlo...
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! ya li manuales de html, javascript, css, php y dhtml, creo que me falta mucha practica, pero bueno s vos decis, vuelvo a leer y estudiar todo de nuevo pero creo que me voy a retrasar mucho. |
| |||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! Probe la solucion propuesta x NSD, pero no guarda los datos en la tabla preliminar y no encuentro el error, aca esta el codigo de pasajes.preliminar.carga.php
Código:
aca esta el script que agrega lineas a la tabla en forma dinamica<script type="text/javascript" src="calcula.js"> </script><!-- va calculando los montos --> <script type="text/javascript" src="ordena.js"> </script><!-- va calculando los montos --> <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <script type="text/javascript"> var Aux1 = 0; function AgregarCampos(ID,VAL){ Aux1++; campo = '<input type="hidden" id="'+ID+'" name="'+ID+'" value="'+VAL+'" />'; $("#orden").append(campo); } function Existe(IDC) { if(IDC=='' || IDC==undefined || IDC==NaN || IDC==null) { return false; } else { return true; } } function Ordenoo() { var Campos = new Array(); $("#distribucion tr").each(function (Aux2) { $(this).children("td").each(function (Aux3) { switch (Aux3) { case 0: Aux4 = $(this).text(); if(!Existe(Campos[Aux4])){ Campos[Aux4] = 0; } break; case 1: Campos[Aux4] = parseFloat(Campos[Aux4])+parseFloat($(this).text()); break; } }); }); for(var Aux5 in Campos){ AgregarCampos(Aux5,Campos[Aux5]); } $("#orden").submit(); } </script> <?php include("menu.php"); ?> </head> <?php //$cone=mysql_connect("localhost","charly163","charly") or die("mal la conexion"); //mysql_select_db("prueba",$cone) or die("mal la base"); //$cons=mysql_query("select idprograma,programa from programa"); ?> <body> <a id="top-of-page"></a> <div id="wrap" class="clearfix"> <br /> <!--Aca pongo la fecha--> <div id="fecha"> <?php $d=date("w"); $l=date("d/m/Y"); switch ($d) { case 1: echo "Hoy es Lunes, ".$l; break; case 2: echo "Hoy es Martes, ".$l; break; case 3: echo "Hoy es Miercoles, ".$l; break; case 4: echo "Hoy es Jueves, ".$l; break; case 5: echo "Hoy es Viernes, ".$l; break; case 6: echo "Hoy es Sabado, ".$l; break; case 0: echo "Hoy es Domingo, ".$l; break; } ?> </div> <!--Aca termina la fecha--> <!-- Concatena el expte.Ojo que para que haga lo siguiente tengo que cambiar el tipo de campo "expediente" de la base contable a varchar(30) y no Int como esta ahora y ademas modificar las relaciones de las tablas de esa base y quitar la tabla intermedia prog-part y dejarlo como esta la base "PRUEBA" --> <!--Aca va la busqueda del expediente--> <div align="center"> Expediente <input class="col_1" onkeypress="return handleEnter(this, event)" value="<?php $caract; ?>" name="caract" type="text"> -<input class="col_1" onkeypress="return handleEnter(this, event)" value="<?php $num; ?>" name="num" type="text"> / <input class="col_1" onkeypress="return handleEnter(this, event)" value="<?php $anio; ?>" name="anio" type="text"> -<input class="col_1" onkeypress="return handleEnter(this, event)" value="<?php $alc; ?>" name="alc" type="text"> </div> <hr class="alt1"> <div style="text-align: center;"> <table id="tablaUsuarios" border="2" name="tablaprog" > <tbody><tr style="text-align: center;" id="fila"> <td style="width: 268px; text-align: center;">Programa</td> <td style="width: 331px; text-align: center;">Monto</td> <td style="width: 338px; text-align: center;">Acciones</td> </tr> <tr> <td style="width: 268px; text-align: left;"> <!--aca va el select inteligente--> <select class="fancy" name="programa" id="sel"> <?php //$cone=mysql_connect("localhost","charly163","charly") or die("mal la conexion"); //mysql_select_db("prueba",$cone) or die("mal la base"); include_once('cone.php'); Conectate(); $cons=mysql_query("select idprograma,programa from programa"); while($r=mysql_fetch_array($cons)) { echo "<option class='fancy' value='$r[programa]'>$r[idprograma] | $r[programa]</option>"; } ?> </select></td> <td style="width: 331px; text-align: center;"><input id="text1" name="montos" type="text"></td> <td style="width: 338px;"> <input class="small orange" onclick="calcula()" value="Calcula" type="button"> <input class="small pink" onclick="ordena()" value="Graba" type="button"> <a class="button pop" href="#ABAJO">Abajo</a> </td> </tr> </tbody></table> </div> <!--</form>--> <!-- HR.alt2 --> <hr class="alt2"> <!-- /HR.alt2 --> <!-- Tabla para mostrar monto de la preliminar --> <table> <tbody><tr> <td style="width: 388px; text-align: right;"><span style="font-weight: bold;">MONTO TOTAL</span><br> </td> <td style="width: 155px; text-align: center; font-weight: bold;" id="aca"><br></td> <th style="width: 390px;">MONTO TOTAL<br></th> </tr> </tbody> </table> <!-- /Tabla para mostrar monto de la preliminar --> <!-- HR.alt1 --> <hr class="alt1"> <!-- Pestañas con distribucion y mas opciones --> <ul class="tabs center"> <li><a href="#tabc1">Resultado de la distribucion</a></li> <li><a href="#tabc2">Realizar Minuta</a></li> <li><a href="#tabc3">Realizar OP</a></li> </ul> <div id="tabc1" class="tab-content"> <form action="ordena.php" method="post" id="orden"> <table class="sortable" id="distribucion"> <thead> <tr><th>PROGRAMA</th> <th>MONTO</th><th>ACCIONES</th></tr> </thead> <tbody> <!-- <tr id="linea"><td id="destino"></td><td id="plata"></td><td></td></tr> <tr><td>Joshua</td> <td>4325.63</td> <td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr> <tr><td>Peter</td><td>5698.44</td> <td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr> <tr><td>Mary</td><td>7654.82</td><td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr> <tr><td>Gretty</td><td>6732.85</td><td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>--> </tbody> </table> </form> </div> <div id="tabc2" class="tab-content">Tab2 has an icon.</div> <div id="tabc3" class="tab-content">Tab3</div> </div>
Código:
y aca el php que conecta a la bd, pero que no veo que grabe en la tablavar m1=0; var orden=1; var monto=0; var pro=0; var caras=0; var expes=0; var anios=0; function calcula() { //aca empieza a chequear si el expte lo puso bien caras=caract.value; expes=num.value; anios=anio.value; if( caras == null || caras.length == 0 ) {alert("FALTA LA CARACTERISTICA DEL EXPEDIENTE");} if( expes == null || expes.length == 0 ) {alert("FALTA EL EXPEDIENTE");} if( anios == null || anios.length == 0 ) {alert("FALTA EL AÑO DEL EXPEDIENTE");} if (anios.length !=4) { alert("EL AÑO DEBE TENER 4 DIGITOS"); anio.value=""; } //aca termina de chequear si el expte lo puso bien monto=montos.value;//guardo el valor del input //monto=monto.toFixed(2); if (isNaN(monto)) { alert("NO ES UN NUMERO"); montos.value="";//lo borro exit; } if( monto == null || monto.length == 0) { alert("CAMPO VACIO"); montos.value="";//lo borro exit; } monto=parseFloat(monto);//lo parseo m1=parseFloat(m1);//parseo el acumulador m1=m1+monto;//voy acumulando el input del monto m1=m1.toFixed(2); montos.value="";//lo borro pro=programa.options[programa.selectedIndex].value;//guardo el valor de los seleccionado en el select document.getElementById('aca').innerHTML = m1;//guardo en la etiqueta "aca" el valor del acumulador var linea=document.getElementById('distribucion');//guardo la referncia de la linea var ultima=linea.rows.length;//obtengo la cantidad de celdas de la fila var row=linea.insertRow(ultima);//inserto 1 fila var celda1=row.insertCell(0);//inserto 1 fila var celda2=row.insertCell(1);//inserto 1 fila var celda3=row.insertCell(2);//inserto 1 fila celda1.innerHTML=pro;//pongo el destino en la celda celda2.innerHTML=monto;//pongo el monto en la celda celda3.innerHTML="<input class='medium green' type='button' value='Eliminar' onclick='eliminarUsuario(this)'>";//pongo el boton eliminar //aca obtengo el id de cada una de los programas creados dinamicamente celda1.id=orden; var g=celda1.id; celda2.id=orden; orden++; return false; } function eliminarUsuario(obj) { var oTr = obj; while(oTr.nodeName.toLowerCase()!='tr') { oTr=oTr.parentNode; } var d=oTr.childNodes[1].innerHTML; var root = oTr.parentNode; root.removeChild(oTr); m1=m1-d; m1=m1.toFixed(2); document.getElementById('aca').innerHTML = m1; }
Código:
<?php $link=mysql_connect("localhost","charly163","charly") or die("no se conecto"); mysql_select_db("prueba",$link) or die("No encontro la base"); foreach ($_POST as $clave => $valor){ mysql_query("INSERT INTO preliminar VALUES('$clave','$valor');") or die("NO SE GRABO EN LA BASE"); } echo "ESPECTACULAR"; mysql_close(); ?> MIL GRACIAS X LAS MOLESTIAS!! |
| ||||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! pues no veo el problema (bah en realida si y una observacion), la funcion anda perfecta lo que pasa es que nunca la llamas. no veo en ningun lugar que la estes llamando. por lo tanto nunca se ejecuta. y una observacion, dado que el formulario es solo para pasar los datos, y estos datos son dinamicos, no deberia llevar contenido. solo por precaucion.
Código PHP:
Ver original |
| |||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! Perdon pero, no la estoy llamando en la linea 229 de tu cita a mi codigo?
Código:
<button onclick="Ordenoo();">GUARDAR</button> |
| |||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! BUENO NSD TENGO QUE FELICITARTE SOS UN CAPO, GROSO TOTAL. SALIO PERFECTO. TENIAS RAZON VOS, EN EL CODIGO DEL FORO LA ESTABA LLAMANDO PERO NO SE PORQUE EN MI CODIGO NO, LO HABRE CAMBIADO NO SE, LA VERDAD ESPECTACULAR. NO ENTENDI MUCHO LO DE "el formulario es solo para pasar los datos, y estos datos son dinamicos, no deberia llevar contenido. solo por precaucion.", PERO BUE, DEBE SER X UNA CUESTION DE SEGURIDAD, PERO CREO QUE YA NO VOY A TOCAR MAS NADA XQ SINO LA VOY A EMBARRAR, CON ESTO ESTARA JOYA. MIL GRACIAS!!!! |
| ||||
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!! Cita: Perdon pero, no la estoy llamando en la linea 229 de tu cita a mi codigo? <button onclick="Ordenoo();">GUARDAR</button> ![]() ![]() Cita: eso es porque para insertar los datos en la tabla se recorre el array $_POST y si por error te queda un input dentro u otro campo distinto podrias tener resultados no deseados.el formulario es solo para pasar los datos, y estos datos son dinamicos, no deberia llevar contenido. solo por precaucion. el formulario originalmente esta vacio, al ejecutar la funcion se recorre la tabla creando los datos en el formulario: Cita: y por ultimo se envia el formulario al tu script con esos datos. AgregarCampos(Aux5,Campos[Aux5]); Cita: me alegro que te sirviera saludos!! ON ESTO ESTARA JOYA. MIL GRACIAS!!!! |
Etiquetas: |