Foros del Web » Programando para Internet » Javascript »

Tablas

Estas en el tema de Tablas en el foro de Javascript en Foros del Web. Hola, estoy diseñando un sistema de edicion, de los datos mostrados en una tabla, obtenidos de una BD, actualmente hago click en botones para poder ...
  #1 (permalink)  
Antiguo 11/02/2013, 00:13
 
Fecha de Ingreso: enero-2013
Mensajes: 57
Antigüedad: 11 años, 3 meses
Puntos: 1
Tablas

Hola, estoy diseñando un sistema de edicion, de los datos mostrados en una tabla, obtenidos de una BD, actualmente hago click en botones para poder editar cada registro, etc, pero me gustaria hacerlo mas dinamico, o sea, haciendo click encima de una celda, poder editarla y luego haciendo click en otro lado, que se quede guardado, por otro lado, dependiendo del tipo de usuario poder editar ciertos campos( no todos), es posible algo asi?
saludos!
  #2 (permalink)  
Antiguo 11/02/2013, 00:38
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Tablas

Eso es mas el desarrollo de una interface que de PHP, todo eso que quieres se logra con Javascript/Ajax, unicamente con PHP no hay forma de como hacerlo sin recargar la página...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 11/02/2013, 01:26
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Tablas

Hola que tal.

Lo que deseas hacer es posible, lo que se me ocurre es mostrar los datos en un input con ciertos parámetros de validación o identificación en el input, de esa forma podrías ejecutar el proceso mediante el uso de ajax, te dejo un ejemplo a grandes rasgos.


archivo donde muestras los datos
Código PHP:

<!DOCTYPE HTML>
<html lang="es-ES">
<head>
    <meta charset="UTF-8">
    <title>actualizacion dinamica</title>
    <style type="text/css">

        table
        {
            width: 80%;
            box-shadow: 0px 0px 3px 3px #545454;
            margin: 0 auto;
        }

        table caption
        {
            background: #183B93;
            color: #FFF;
        }

        table th
        {
            background: #444444; 
            color: #FFF; 
            text-transform: uppercase;
            padding: 7px;
        }

        input
        {
            border: solid 2px #930000;
            padding: 5px;
        }
    </style>
    <script type="text/javascript" src="jquery-1.8.3.js"></script>
    <script type="text/javascript">
        function actualizaCampo ( arrastre )
        {
            var campo = $( arrastre ).attr( "id" )
            var valor = $( arrastre ).val()
            $.ajax({
                type: 'post',
                dataType: 'text',
                url: 'controlador.php',
                data: { campo: campo, valor: valor },
                success: function(text)
                {    
                    //alert( text )
                },
                error: function()
                {
                    alert( "Error al actualizar campo" )
                }
            });
        }
    </script>
</head>
<body>
    <table>
        <caption>Datos</caption>
        <tr>
            <th>lote</th>
            <th>descrip</th>
        </tr>
        <?php
            $mysqli 
= new mysqli"localhost""tu_usuario""tu_pass""tu_db" );
            if ( 
$mysqli->connect_errno )
            {
                echo 
"Falló la conexión a MySQL: (" $mysqli->connect_errno ") " $mysqli->connect_error;
            }
            
$mysqli->real_query"SELECT * FROM a ORDER BY id ASC" );
            
$resultado $mysqli->use_result();

            while ( 
$fila $resultado->fetch_assoc() )
            {
                echo 
"
                    <tr>
                        <td><input type=\"text\" name=\"{$fila['id']}_lote\" id=\"{$fila['id']}_lote\" value=\"{$fila['lote']}\" onchange=\"actualizaCampo( this )\"></td>
                        <td><input type=\"text\" name=\"{$fila['id']}_descrip\" id=\"{$fila['id']}_descrip\" value=\"{$fila['descrip']}\" onchange=\"actualizaCampo( this )\"></td>
                    </tr>
                "
;
            }
        
?>
    </table>
</body>
</html>

archivo donde actualizas los datos

Código PHP:

<?php
    
    
// dividimos la variable campo para identificar que registro se debe de actualizar
    
$campos explode"_"$_POST['campo'] );
    
$mysqli = new mysqli"localhost""tu_usuario""tu_pass""tu_db" );
    if ( 
$mysqli->connect_errno )
    {
        echo 
"Falló la conexión a MySQL: (" $mysqli->connect_errno ") " $mysqli->connect_error;
    }
    
$mysqli->real_query"UPDATE a set {$campos[1]}='{$_POST['valor']}' WHERE id='{$campos[0]}' " );

?>
en mi caso tengo una tabla con la siguiente estructura
Código SQL:
Ver original
  1. mysql> SELECT * FROM a
  2.     -> ;
  3. +----+-------+---------+
  4. | id | lote  | descrip |
  5. +----+-------+---------+
  6. |  1 | aaasd | a       |
  7. |  2 | casda | casd    |
  8. |  3 | f     | fasdas  |
  9. +----+-------+---------+
  10. 3 ROWS IN SET (0.00 sec)

si lo acoplas a tu tabla funcionara adecuadamente, lo de que campos puede modificar cada usuario, eso dependerá de una configuración por usuario.

espero te sirva

Saludos

IMPORTANTE: nunca genero el código para la solución, solo en este caso realice una excepción, ya que no tengo nada que hacer.
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125

Última edición por skiper0125; 11/02/2013 a las 01:38
  #4 (permalink)  
Antiguo 11/02/2013, 14:42
 
Fecha de Ingreso: enero-2013
Mensajes: 57
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Tablas

Hola, espero que aun no tengas nada q hacer , veras intente hacer lo que me pusiste, pero en AJAX, estoy mas perdido que Marco.

Algun manual, por alli o sino una solucoon en Javascript, please.
  #5 (permalink)  
Antiguo 11/02/2013, 18:09
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Tablas

Cita:
Iniciado por info0506 Ver Mensaje
Hola, espero que aun no tengas nada q hacer , veras intente hacer lo que me pusiste, pero en AJAX, estoy mas perdido que Marco.

Algun manual, por alli o sino una solucoon en Javascript, please.
Te dejo el manual de referencia http://api.jquery.com/jQuery.ajax/, si deseas que realice todo el desarrollo te recomiendo que visites el foro de empleo y me contactas y con gusto lo realizo por una cantidad justa

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125

Etiquetas: php, tablas
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 11:19.