Foros del Web » Programando para Internet » PHP »

Ordenar, acumular y guardar en la bd ordenados!!!

Estas en el tema de Ordenar, acumular y guardar en la bd ordenados!!! en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/09/2012, 06:06
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
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.
  #2 (permalink)  
Antiguo 26/09/2012, 06:22
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 12
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 :)
  #3 (permalink)  
Antiguo 26/09/2012, 07:17
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
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
  1. <!DOCTYPE html>
  2.  <Html Lang="es">
  3.  <head>
  4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.     <title>TuSitio</title>
  6.     <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
  7.  
  8.     <script type="text/javascript">
  9.         var Aux1 = 0;
  10.         function AgregarCampos(ID,VAL){
  11.             Aux1++;
  12.             campo = '<input type="hidden" id="'+ID+'"  name="'+ID+'"  value="'+VAL+'" /></li>';
  13.             $("#datos").append(campo);
  14.         }
  15.         function Existe(IDC) {
  16.             if(IDC=='' || IDC==undefined || IDC==NaN || IDC==null) {
  17.                 return false;
  18.             } else {
  19.                 return true;
  20.         }   }
  21.         function Ordenoo() {
  22.             var Campos = new Array();
  23.             $("#mitabla tr").each(function (Aux2) {
  24.                 $(this).children("td").each(function (Aux3) {
  25.                     switch (Aux3) {
  26.                         case 0:
  27.                             Aux4 = $(this).text();
  28.                             if(!Existe(Campos[Aux4])){ Campos[Aux4] = 0; }
  29.                         break;
  30.                         case 1:
  31.                             Campos[Aux4] = parseFloat(Campos[Aux4])+parseFloat($(this).text());
  32.                         break;
  33.                     }
  34.                 });
  35.             });
  36.             for(var Aux5 in Campos){
  37.                 AgregarCampos(Aux5,Campos[Aux5]);
  38.             }
  39.             $("#datos").submit();
  40.         }
  41.     </script>
  42.  </head>
  43.  <body>
  44.     <table id="mitabla">
  45.         <tr>
  46.             <td>PRG6SUB1</td>
  47.             <td>300</td>
  48.         </tr>
  49.         <tr>
  50.             <td>PRG6SUB2</td>
  51.             <td>600</td>
  52.         </tr>
  53.         <tr>
  54.             <td>PRG6SUB1</td>
  55.             <td>100</td>
  56.         </tr>
  57.         <tr>
  58.             <td>PRG6SUB1</td>
  59.             <td>50</td>
  60.         </tr>
  61.     </table>
  62.     <form id="datos" action="miscript.php" method="POST"></form>
  63.     <b onClick="Ordenoo()">Haceme Click</b>
  64.  </body>
  65.  </html>

y en miscript.php que es el que prosesa el formulario tienes esto:
Código PHP:
Ver original
  1. <?php
  2.     mysql_connect('server','user','pass');
  3.     mysql_select_db('labasededatos');
  4.     foreach ($_POST as $clave => $valor){
  5.         mysql_query("INSERT INTO mitabla VALUES('$clave','$valor');"); 
  6.     }
  7.     mysql_close();
  8. ?>

con eso adaptado andaria bien. espero te sirva saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #4 (permalink)  
Antiguo 27/09/2012, 14:37
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
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:
var 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;
}
Y ACA EL ARCHIVO PHP
Código:
<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>
HASTA ACA LLEGUE CON MUCHAS DIFICULTADES PARA HACER ESTO.
  #5 (permalink)  
Antiguo 27/09/2012, 20:18
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!!

Cita:
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
Cita:
$("#datos").submit();
esa linea envia los datos al servidor. manipulala para que lo haga en el momento que tu quieras o dejala como esta para que lo haga de forma automatica cuando cliquees en la letra negrita.
Cita:
<?php
mysql_connect('server','user','pass');
mysql_select_db('labasededatos');
foreach ($_POST as $clave => $valor){
mysql_query("INSERT INTO mitabla VALUES('$clave','$valor');");
}
mysql_close();
?>
ese codigo inserta en la base de datos la informacion recolectada.

cual es el problema que tienes ahora?

PD: por favor no esribas en mayuscula, parece que estubieras gritando. gracias.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 27/09/2012, 21:20
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
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??
  #7 (permalink)  
Antiguo 28/09/2012, 06:28
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!!

Cita:
$("#datos"), este es el id del formulario??
Cita:
<form id="datos" action="miscript.php" method="POST"></form>
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #8 (permalink)  
Antiguo 29/09/2012, 12:19
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
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??
  #9 (permalink)  
Antiguo 29/09/2012, 16:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ordenar, acumular y guardar en la bd ordenados!!!

Cita:
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, disculpa que te lo diga sin anestesia, pero la mejor solución para tu problema es que estudies programación en serio.
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)
  #10 (permalink)  
Antiguo 30/09/2012, 21:11
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
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.
  #11 (permalink)  
Antiguo 01/10/2012, 09:02
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
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:
<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>
aca esta el script que agrega lineas a la tabla en forma dinamica
Código:
var 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;
}
y aca el php que conecta a la bd, pero que no veo que grabe en la tabla
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!!
  #12 (permalink)  
Antiguo 01/10/2012, 09:50
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
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
  1. <script type="text/javascript" src="calcula.js"> </script><!-- va calculando los montos -->
  2. <script type="text/javascript" src="ordena.js"> </script><!-- va calculando los montos -->
  3.  
  4.   <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
  5.     <script type="text/javascript">
  6.  
  7.         var Aux1 = 0;
  8.  
  9.         function AgregarCampos(ID,VAL){
  10.  
  11.             Aux1++;
  12.  
  13.             campo = '<input type="hidden" id="'+ID+'"  name="'+ID+'"  value="'+VAL+'" />';
  14.  
  15.             $("#orden").append(campo);
  16.  
  17.         }
  18.  
  19.         function Existe(IDC) {
  20.  
  21.             if(IDC=='' || IDC==undefined || IDC==NaN || IDC==null) {
  22.  
  23.                 return false;
  24.  
  25.             } else {
  26.  
  27.                 return true;
  28.  
  29.         }   }
  30.  
  31.         function Ordenoo() {
  32.  
  33.             var Campos = new Array();
  34.  
  35.             $("#distribucion tr").each(function (Aux2) {
  36.  
  37.                 $(this).children("td").each(function (Aux3) {
  38.  
  39.                     switch (Aux3) {
  40.  
  41.                         case 0:
  42.  
  43.                             Aux4 = $(this).text();
  44.  
  45.                             if(!Existe(Campos[Aux4])){ Campos[Aux4] = 0; }
  46.  
  47.                         break;
  48.  
  49.                         case 1:
  50.  
  51.                             Campos[Aux4] = parseFloat(Campos[Aux4])+parseFloat($(this).text());
  52.  
  53.                         break;
  54.  
  55.                     }
  56.  
  57.                 });
  58.  
  59.             });
  60.            
  61.             VPD='';
  62.             for(var Aux5 in Campos){
  63.  
  64.                 AgregarCampos(Aux5,Campos[Aux5]);
  65.                 VPD += Aux5+' => '+Campos[Aux5]+'\n';
  66.  
  67.             }
  68.             //aca tenes una vista previa de los datos, eliminala para no verlos
  69.             alert(VPD);
  70.             //Activa esta linea para enviar los datos al escript
  71.             //$("#orden").submit();
  72.  
  73.         }
  74.  
  75.     </script>
  76.  
  77.  
  78.  
  79.  
  80. <?php include("menu.php"); ?>
  81. </head>
  82.  
  83. <?php
  84. //$cone=mysql_connect("localhost","charly163","charly") or die("mal la conexion");
  85. //mysql_select_db("prueba",$cone) or die("mal la base");
  86. //$cons=mysql_query("select idprograma,programa from programa");
  87. ?>
  88.  
  89. <body>
  90.     <a id="top-of-page"></a>
  91.     <div id="wrap" class="clearfix">
  92.     <br />
  93. <!--Aca pongo la fecha-->
  94. <div id="fecha">
  95.   <?php $d=date("w");
  96.   $l=date("d/m/Y");
  97.   switch ($d)
  98.   {
  99.   case 1:
  100.   echo "Hoy es Lunes, ".$l;
  101.   break;
  102.   case 2:
  103.   echo "Hoy es Martes, ".$l;
  104.   break;
  105.   case 3:
  106.   echo "Hoy es Miercoles, ".$l;
  107.   break;
  108.   case 4:
  109.   echo "Hoy es Jueves, ".$l;
  110.   break;
  111.   case 5:
  112.   echo "Hoy es Viernes, ".$l;
  113.   break;
  114.   case 6:
  115.   echo "Hoy es Sabado, ".$l;
  116.   break;
  117.   case 0:
  118.   echo "Hoy es Domingo, ".$l;
  119.   break;
  120.   }
  121. ?>
  122. </div>
  123. <!--Aca termina la fecha-->
  124.  
  125.  
  126.  
  127. <!-- Concatena el expte.Ojo que para que haga lo siguiente tengo que cambiar el tipo de campo "expediente"
  128. de la base contable a varchar(30) y no Int como esta ahora y ademas modificar las
  129. relaciones de las tablas de esa base y quitar la tabla intermedia prog-part y dejarlo
  130. como esta la base "PRUEBA"
  131.  -->
  132.  
  133.  
  134. <!--Aca va la busqueda del expediente-->
  135.  
  136.  
  137. <div align="center">
  138. Expediente
  139. <input class="col_1" onkeypress="return handleEnter(this, event)" value="<?php $caract; ?>" name="caract" type="text">
  140.  
  141. -<input class="col_1" onkeypress="return handleEnter(this, event)" value="<?php $num; ?>" name="num" type="text">
  142.  
  143. / <input class="col_1" onkeypress="return handleEnter(this, event)" value="<?php $anio; ?>" name="anio" type="text">
  144.  
  145. -<input class="col_1" onkeypress="return handleEnter(this, event)" value="<?php $alc; ?>" name="alc" type="text">
  146. </div>
  147.  
  148.  
  149. <hr class="alt1">
  150.  
  151. <div style="text-align: center;">
  152.  
  153. <table id="tablaUsuarios" border="2" name="tablaprog" >
  154. <tbody><tr style="text-align: center;" id="fila">
  155.     <td style="width: 268px; text-align: center;">Programa</td>
  156.     <td style="width: 331px; text-align: center;">Monto</td>
  157.     <td style="width: 338px; text-align: center;">Acciones</td>
  158. </tr>
  159. <tr>
  160.     <td style="width: 268px; text-align: left;">    <!--aca va el select inteligente-->
  161.    
  162.     <select class="fancy" name="programa" id="sel">
  163. <?php
  164. //$cone=mysql_connect("localhost","charly163","charly") or die("mal la conexion");
  165. //mysql_select_db("prueba",$cone) or die("mal la base");
  166. include_once('cone.php');
  167. Conectate();
  168. $cons=mysql_query("select idprograma,programa from programa");
  169. while($r=mysql_fetch_array($cons))
  170. {
  171.   echo "<option class='fancy' value='$r[programa]'>$r[idprograma] | $r[programa]</option>";  
  172. }
  173. ?>
  174.     </select></td>
  175.     <td style="width: 331px; text-align: center;"><input id="text1" name="montos" type="text"></td>
  176.     <td style="width: 338px;">
  177.         <input class="small orange" onclick="calcula()" value="Calcula" type="button">
  178.                
  179.             <input class="small pink" onclick="ordena()" value="Graba" type="button">
  180.         <a class="button pop" href="#ABAJO">Abajo</a>
  181.     </td>
  182. </tr>
  183. </tbody></table>
  184. </div>
  185. <!--</form>-->
  186.  
  187. <!-- HR.alt2 -->
  188. <hr class="alt2">
  189. <!-- /HR.alt2 -->
  190.  
  191. <!-- Tabla para mostrar monto de la preliminar -->
  192. <table>
  193. <tbody><tr>
  194.     <td style="width: 388px; text-align: right;"><span style="font-weight: bold;">MONTO TOTAL</span><br> </td>
  195.     <td style="width: 155px; text-align: center; font-weight: bold;" id="aca"><br></td>
  196.     <th style="width: 390px;">MONTO TOTAL<br></th>
  197.        </tr>
  198. </tbody>
  199. </table>
  200. <!-- /Tabla para mostrar monto de la preliminar -->
  201.  
  202.  
  203. <!-- HR.alt1 -->
  204. <hr class="alt1">
  205.  
  206.  
  207.   <!-- Pestañas con distribucion y mas opciones -->
  208. <ul class="tabs center">
  209. <li><a href="#tabc1">Resultado de la distribucion</a></li>
  210. <li><a href="#tabc2">Realizar Minuta</a></li>
  211. <li><a href="#tabc3">Realizar OP</a></li>
  212. </ul>
  213.  
  214. <div id="tabc1" class="tab-content">
  215. <form action="ordena.php" method="post" id="orden"></form>
  216.    <table class="sortable" id="distribucion">
  217.      <thead>
  218.         <tr><th>PROGRAMA</th> <th>MONTO</th><th>ACCIONES</th></tr>
  219.      </thead>
  220.     <tbody>
  221.         <tr id="linea"><td id="destino"></td><td id="plata"></td><td></td></tr>
  222.         <tr><td>Joshua</td> <td>4325.63</td>    <td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>
  223.         <tr><td>Peter</td><td>5698.44</td>  <td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>
  224.         <tr><td>Mary</td><td>7654.82</td><td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>
  225.         <tr><td>Gretty</td><td>6732.85</td><td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>
  226.      </tbody>
  227.        </table>
  228. </div>
  229. <button onclick="Ordenoo();">GUARDAR</button>
  230. <div id="tabc2" class="tab-content">Tab2 has an icon.</div>
  231. <div id="tabc3" class="tab-content">Tab3</div>  
  232.  
  233.  
  234. </div>
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #13 (permalink)  
Antiguo 02/10/2012, 07:26
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
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>
  #14 (permalink)  
Antiguo 02/10/2012, 08:31
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
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!!!!
  #15 (permalink)  
Antiguo 02/10/2012, 19:34
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
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>
esa linea justamente es la que te faltaba la he escrito yo

Cita:
el formulario es solo para pasar los datos, y estos datos son dinamicos, no deberia llevar contenido. solo por precaucion.
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 originalmente esta vacio, al ejecutar la funcion se recorre la tabla creando los datos en el formulario:
Cita:
AgregarCampos(Aux5,Campos[Aux5]);
y por ultimo se envia el formulario al tu script con esos datos.
Cita:
ON ESTO ESTARA JOYA. MIL GRACIAS!!!!
me alegro que te sirviera saludos!!
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: acumular, bd, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:22.