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