Foros del Web » Programando para Internet » PHP »

Insertar datos en tabla con drag and drop

Estas en el tema de Insertar datos en tabla con drag and drop en el foro de PHP en Foros del Web. Buenas a todos, este es mi primer post espero que me podais ayudar lo agradeceria mucho, pues os cuento me han mandado un proyecto en ...
  #1 (permalink)  
Antiguo 08/03/2013, 18:32
 
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta Insertar datos en tabla con drag and drop

Buenas a todos, este es mi primer post espero que me podais ayudar lo agradeceria mucho, pues os cuento me han mandado un proyecto en el que, bueno, tengo que insertar varios datos a traves del metodo "drag and drop" a una base de datos, he conseguido insertar entre las tablas que solo tienen un registro pero cuando voy a insertarlo a la parte grande me inserta separados.


os lo paso todo por si alguien tan amable de echarle un vistazo y si pudiera decirme el error o lo que habra que añadirle que seguro que es que hay que añadirle algo pero no lo comprendo muy bien gracias.


El archivo.sql tiene ejemplos sueltos de arrastre simplemente.

Código:
CREATE TABLE IF NOT EXISTS `cursos` (
  `Cursos` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `cursos`
--

INSERT INTO `cursos` (`Cursos`) VALUES
('wwwwww'),
('aaaaaaaaa');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `nivel`
--

CREATE TABLE IF NOT EXISTS `nivel` (
  `Nivel` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `nivel`
--

INSERT INTO `nivel` (`Nivel`) VALUES
('lllllll'),
('lliiiiiioooo');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `objetivo_final`
--

CREATE TABLE IF NOT EXISTS `objetivo_final` (
  `Cursos` varchar(50) NOT NULL,
  `Nivel` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `objetivo_final`
--


-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `titulos`
--

CREATE TABLE IF NOT EXISTS `titulos` (
  `Titulos` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Volcar la base de datos para la tabla `titulos`
--

La conexion.php



Código PHP:
<?php
//Configuracion de la conexion a base de datos
$bd_host "localhost"
$bd_usuario "root"
$bd_password ""
$bd_base "Estudios"
$con mysql_connect($bd_host$bd_usuario$bd_password); 
mysql_select_db($bd_base$con); 
?>


guardar.php // Aqui es donde se envian los datos del drag and drop y se insertan
funcionan solo los primeros luego mi problema es que en el case 4 se me insertan pero salteados y he probado a poner elementos[j] pero logicamente me crea los datos repetidos al primero que arrastro xD

Código PHP:
<?php
require('conexion.php');

function 
ElementosEnBlanco(){
    
mysql_query("DELETE FROM Nivel");
    
mysql_query("DELETE FROM Titulos");
    
mysql_query("DELETE FROM Cursos");
    
mysql_query("DELETE FROM objetivo_final");
}

$cadena=$_POST['cadena'];
$cadenas=explode('/',$cadena);
$nro_cadenas=count($cadenas);
$i=0;
ElementosEnBlanco();

while(
$i<$nro_cadenas){
    
$elementos=explode(',',$cadenas[$i]);
    
$nro_elementos=count($elementos);
    
$j=0;
    while(
$j<$nro_elementos){
        if(
$elementos[$j]!=""){
            switch(
$i){
                case 
0:
                
mysql_query("INSERT INTO Nivel(nivel) VALUES ('$elementos[$j]')",$con);
                break;
                case 
1:
                
mysql_query("INSERT INTO Titulos(titulos) VALUES ('$elementos[$j]')",$con);
                break;
                case 
2:
                
mysql_query("INSERT INTO Cursos(cursos) VALUES ('$elementos[$j]')",$con);
                break;
                case 
3:
                
mysql_query("INSERT INTO objetivo_final(cursos) VALUES ('$elementos[$j]')",$con);
                break;
                case 
4:
                
mysql_query("INSERT INTO objetivo_final(nivel) VALUES ('$elementos[$j]')",$con);
                break;
            }
        }
        
$j++;
    }
    
$i++;
}

echo 
"Cambios guardados";
?>

insertar.php // Aqui estan el drag and drop y la funcion

Código PHP:
<!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=iso-8859-1" />
<title>Area</title>
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js" type="text/javascript"></script>
<script src="js/ajax.js" type="text/javascript"></script>
<style>
#Nivel{
    float:left;
    width:150px;

    background-color:#E4ECF3;
    margin:5px;
}
#Titulos{
    float:left;
    width:150px;
    background-color:#E4ECF3;
    margin:5px;
}

#Cursos{
    float:left;
    width:150px;
    background-color:#E4ECF3;
    margin:5px;
}

#offinal2{
 
    position:absolute;
    
    width:200px;
    
    background-color:#E4ECF3;
    margin-top:5px;
    margin-left:470px;
    
    border:1px solid grey;

}

#offinal{
 
    position:absolute;
    
    width:200px;
    
    background-color:#E4ECF3;
    margin-top:5px;
    margin-left:673px;
    
    border:1px solid grey;

}

#Nivel div, #Titulos div, #Cursos div, #offinal div, #offinal2 div{
    margin:4px;
    cursor:move;
    border:1px solid red;
}
h3{
    font-size:16px;
    margin:4px;

    color:#003355;
    cursor:move;
}

h2{

    margin:4px;
    background-color:#003355;
    color:#FFFFFF;
    cursor:move;
}

h4{
    margin:4px;
    background-color:#003355;
    color:#FFFFFF;
    cursor:move;
}

#pagina{

    width:350px;
    margin:left;
    padding-left:50px;
    padding-right:50px;
    height:250px;
}
</style>
<script type="text/javascript">
    function obtenerElementos() {
        var secciones = document.getElementsByClassName('seccion');
        var alerttext = '';
        var separador = '';
        secciones.each(function(seccion) {
            alerttext += separador + Sortable.sequence(seccion);
            separador = "/";
        });
        EnviarDatos(alerttext);
        return false;
    }
</script>
</head>

<body>
<h4 align="center">Arrastra las areas y pulsa guardar</h4>
<p align="center">
<?php
    
//include('../../pub/adsgoogle_fullart_tit.tpl');
?>
</p>
<div id="pagina">
<div id="Nivel" class="seccion">
    <h2 class="arrastrar">Niveles</h2>
    <?php 
     
require('conexion.php');
     
$Resultado=mysql_query("SELECT * FROM Nivel",$con);
     while(
$MostrarFila=mysql_fetch_array($Resultado)){
         echo 
"<div id='Nivel_".$MostrarFila['Nivel']."'>".$MostrarFila['Nivel']."</div> \n";
     }
    
?>
</div>
<div id="Titulos" class="seccion">
    <h2 class="arrastrar">Titulos</h2>
    

    <?php
     $Resultado
=mysql_query("SELECT * FROM Titulos",$con);
     while(
$MostrarFila=mysql_fetch_array($Resultado)){
         echo 
"<div id='Titulos_".$MostrarFila['Titulos']."'>".$MostrarFila['Titulos']."</div>";
     }
     
    
?>
</div>

<div id="Cursos" class="seccion">
    <h2 class="arrastrar">Cursos</h2>
        <?php
     $Resultado
=mysql_query("SELECT * FROM Cursos",$con);
     while(
$MostrarFila=mysql_fetch_array($Resultado)){
         echo 
"<div id='Cursos_".$MostrarFila['Cursos']."'>".$MostrarFila['Cursos']."</div>";
     }
     
    
?>

</div>


<div id="offinal2" align='center' class="seccion">
        <h3 class="arrastrar">Aqui arrastra los cursos</h3>

        <?php
         $Resultado
=mysql_query("SELECT Cursos FROM Objetivo_final",$con);
         while(
$MostrarFila=mysql_fetch_array($Resultado)){
             echo 
"<div id='offinal_".$MostrarFila['Cursos']."'>".$MostrarFila['Cursos']."</div>";
         }
         
        
?>

</div>
<div id="offinal" align='center' class="seccion">
        <h3 class="arrastrar">Aqui arrastra los niveles</h3>

        <?php
         $Resultado
=mysql_query("SELECT Nivel FROM Objetivo_final",$con);
         while(
$MostrarFila=mysql_fetch_array($Resultado)){
             echo 
"<div id='offinal2_".$MostrarFila['Nivel']."'>".$MostrarFila['Nivel']."</div>";
         }
         
        
?>


</div>

</div>
<script type="text/javascript">
 // <![CDATA[
    Sortable.create('Nivel',{
        tag:'div',
        dropOnEmpty: true, 
        containment:["Nivel","Titulos","Cursos","offinal","offinal2"],
        constraint:false});
        
    Sortable.create('Titulos',{
        tag:'div',
        dropOnEmpty: true, 
        containment:["Nivel","Titulos","Cursos","offinal","offinal2"],
        constraint:false});
        
    Sortable.create('Cursos',{
        tag:'div',
        dropOnEmpty: true, 
        containment:["Nivel","Titulos","Cursos","offinal","offinal2"],
        constraint:false});
        
    Sortable.create('offinal',{
        tag:'div',
        dropOnEmpty: true, 
        containment:["Nivel","Titulos","Cursos","offinal","offinal2"],
        constraint:false});
        
    Sortable.create('offinal2',{
        tag:'div',
        dropOnEmpty: true, 
        containment:["Nivel","Titulos","Cursos","offinal","offinal2"],
        constraint:false});
        
    Sortable.create('pagina',{
        tag:'div',
        only:'seccion',
        handle:'arrastrar'});
 // ]]>
</script>
<p align="center">
  <input type="button" name="Button" value="Guardar en la base de datos" onclick="obtenerElementos()" />
</p>

</body>
</html>
y bueno faltaria el js, pero eso esta correcto lo que falla es guardar.php que no se que consulta poner para que inserte los datos que arrastro, espero que me ayuden muchas gracias de antemano
  #2 (permalink)  
Antiguo 08/03/2013, 19:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Insertar datos en tabla con drag and drop

Para saber si es problema de PHP o de Javascript, sugiero:

var_dump(explode('/', $_POST['cadena']));

Realmente estás recibiendo los datos como los esperas?, cuéntanos más de esos datos.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 09/03/2013, 16:07
 
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Insertar datos en tabla con drag and drop

No disculpa porque no me he explicado bien.
Haber yo arrastro los datos y en el php de guardar en el case 4 quiero arrastrar todos los datos a una tabla con mas de una columna como por ejemplo

insert into total values ([elemento1],[elemento2]);

lo que quiero decir es tener una especie de tabla y poder insertar en orden y que en la base de datos aparezcan los elementos que he arrastrado comprendes mi duda?
  #4 (permalink)  
Antiguo 09/03/2013, 16:14
 
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Insertar datos en tabla con drag and drop

http://www.ribosomatic.com/articulos/drag-drop-con-scriptaculous-php-y-mysql-parte-2/

en este ejemplo aparece lo que digo y yo lo que quiero de esta pagina es que aparezca una tabla al lado con contratados y despedidos, arrastrar a la tabla y que en mysql haya una tabla con dos registros: contratados y despedidos e insertar los datos juntos entendeis?

Etiquetas: drag, drop, html, mysql, registro, select, sql, 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 22:07.