Foros del Web » Programando para Internet » Javascript »

Consulta sobre Drag and Drop

Estas en el tema de Consulta sobre Drag and Drop en el foro de Javascript en Foros del Web. Hola, bueno tengo una pregunta. tengo un sitio en donde yo mismo realice un panel de control desde el cual creo categorias y solas se ...
  #1 (permalink)  
Antiguo 17/06/2009, 12:53
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 11 meses
Puntos: 1
Consulta sobre Drag and Drop

Hola,

bueno tengo una pregunta.

tengo un sitio en donde yo mismo realice un panel de control desde el cual creo categorias y solas se insertan en mi menu vertical o botonera..

Ahora el problema es que las categorias no se puden acomodar a mi gusto... porque o las acomodo ordenando por id creciente decreciente o por abecedario... pero no puedo ponerlas como yo quisiera desde php mysql

entonces una cosa que me vendria bien es algo que recien acabo de conocer llamado Drag and Drop en donde se puede arrastrar y soltar,

La solucion que se me ocurre al respecto es poder acomodar a mi gusto el menu arrastrando y soltando donde quiero ponerlo y de esta forma las acomodaria como yo quiero... tipo wordpress seguro que la mayoria a visto como se puede acomodar el sidebar desde la seccion widgets

Si tengo

Menu b
Menu a
Menu c

Los acomodaria arrastrando y soltando hasta que quede de esta forma

Menu a
Menu b
Menu c

De todas formas si alguien save como puedo hacerlo de otra forma me lo dice

si?

Saludo
  #2 (permalink)  
Antiguo 17/06/2009, 13:09
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Consulta sobre Drag and Drop

Hola de nuevo sigo navegando por aqui...

miren esto encontre que es lo que querria lograr

h t tp : / / to o l - m a n . o r g / e x amp l e s / s o r t i n g . h t m l

Aqui esta lo que quiero hacer pero no entiendo nada y esta en ingles...

Aguien tiene algo mejor lo cual me pueda ser de ayuda

?
  #3 (permalink)  
Antiguo 17/06/2009, 15:10
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Consulta sobre Drag and Drop

Bueno aqui he podidio rescatar bastante y siento que me hacerco bastante a lo que quiero lograr....

Este codigo lo saque del enlace anterior... le di en Downloas vercion 2.0 y se me descargo entre otras cosas esto pero es lo que esta online...

en fin tengo este codigo

Esta pagina es sorting.html

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
<html>
<head>
<title>Drag &amp; Drop Sortable Lists with JavaScript and CSS</title>

<link rel="stylesheet" type="text/css" href="common/common.css"/>
<link rel="stylesheet" type="text/css" href="common/lists.css"/>


<style type="text/css"><!--
	.statusbox {
		font-size: 13px;
		font-family: Monaco, monospace;
		width: 15em;
	}
	ul.boxy li { margin: 0px; }
	#phonetics td {
		margin: 0px;
		padding: 0px 1em;
		vertical-align: top;
		width: 100px;
	}
	#phonetic1 li, #phonetic2 li, #phonetic3 li { margin: 0px; }
	#phonetic2 li {
		margin-bottom: 4px;
	}
	#phonetic3 { margin-top: -4px; }
	#phonetic3 li { margin-top: 4px; }
	#phoneticlong {
		margin-bottom: 1em;
	}
	#phoneticlong li, #buttons li {
		margin-bottom: 0px;
		margin-top: 4px;
	}

	#boxes {
		font-family: Arial, sans-serif;
		list-style-type: none;
		margin: 0px;
		padding: 0px;
		width: 300px;
	}
	#boxes li {
		cursor: move;
		position: relative;
		float: left;
		margin: 2px 2px 0px 0px;
		width: 33px;
		height: 28px;
		border: 1px solid #000;
		text-align: center;
		padding-top: 5px;
		background-color: #eeeeff;
	}

	#twolists td {
		width: 300px;
		vertical-align: top;
	}
	#twolists1 li {
		font-family: sans-serif;
	}
	#twolists2 {
		border: 1px dashed #fff;
	}
	#twolists2 li {
		font-family: serif;
		background-color: #eedddd;
	}
	.inspector {
		font-size: 11px;
	}
	//-->
</style>

<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/core.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/events.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/css.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/coordinates.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/drag.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/dragsort.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/cookies.js"></script>

<script language="JavaScript" type="text/javascript"><!--
	var dragsort = ToolMan.dragsort()
	var junkdrawer = ToolMan.junkdrawer()

	window.onload = function() {

		junkdrawer.restoreListOrder("phoneticlong")
		junkdrawer.restoreListOrder("boxes")
		junkdrawer.restoreListOrder("buttons")
		//junkdrawer.restoreListOrder("twolists1")
		//junkdrawer.restoreListOrder("twolists2")


		dragsort.makeListSortable(document.getElementById("phoneticlong"),
				verticalOnly, saveOrder)

		dragsort.makeListSortable(document.getElementById("boxes"),
				saveOrder)

		dragsort.makeListSortable(document.getElementById("buttons"),
				saveOrder)

		/*
		dragsort.makeListSortable(document.getElementById("twolists1"),
				saveOrder)
		dragsort.makeListSortable(document.getElementById("twolists2"),
				saveOrder)
		*/
	}

	function verticalOnly(item) {
		item.toolManDragGroup.verticalOnly()
	}

	function speak(id, what) {
		var element = document.getElementById(id);
		element.innerHTML = 'Clicked ' + what;
	}

	function saveOrder(item) {
		var group = item.toolManDragGroup
		var list = group.element.parentNode
		var id = list.getAttribute("id")
		if (id == null) return
		group.register('dragend', function() {
			ToolMan.cookies().set("list-" + id, 
					junkdrawer.serializeList(list), 365)
		})
	}

	//-->
</script>
</head>
<body>





<form action="seba.php" method="post">


<!-- yeah, it's invalid XHTML.  Suck it up, pedant-boy :) -->
<ul id="phoneticlong" class="boxy">
	<li itemID="a">alpha</li>
	<li itemID="b">bravo</li>
	<li itemID="c">charlie</li>
	<li itemID="d">delta</li>
	<li itemID="e">echo</li>
	<li itemID="f">foxtrot</li>
	<li itemID="g">golf</li>
	<li itemID="h">hotel</li>
	<li itemID="i">india</li>
	<li itemID="j">juliet</li>
	<li itemID="k">kilo</li>
	<li itemID="l">lima</li>
	<li itemID="m">mike</li>
	<li itemID="n">november</li>
	<li itemID="o">oscar</li>
	<li itemID="p">papa</li>
	<li itemID="q">quebec</li>
	<li itemID="r">romeo</li>
	<li itemID="s">sierra</li>
	<li itemID="t">tango</li>
	<li itemID="u">uniform</li>
	<li itemID="v">victor</li>
	<li itemID="w">whiskey</li>
	<li itemID="x">xray</li>
	<li itemID="y">yankee</li>
	<li itemID="z">zulu</li>
</ul>

<p><input class="inspector" type="button" value="Inspect" onclick="junkdrawer.inspectListOrder('phoneticlong')"/></p>

</form>

</body>

</html>

Dos cosas...

a pesar de que anda y hace lo que tiene que hacer este codigo me sale el tipico mensaje de error de javascript en la parte inferior izq del navegador... pero todo anda bien...

Segundo...

veo que cuando uno modifica el orden de las palabras estas se guardan en una cokie.. hay forma de mandar esta misma informacion desde un formulario (POST) a otra pagina por ejemplo prosesa para guardar el nuevo orden?¿

Pregunto es posible esto?

Alguien me puede ayudar?
  #4 (permalink)  
Antiguo 17/06/2009, 15:56
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Consulta sobre Drag and Drop

Hola estoy viendo estos script pero no entiendo nada..

Alguien me orienta un poco ?¿?


Código:
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/core.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/events.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/css.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/coordinates.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/drag.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/dragsort.js"></script>
<script language="JavaScript" type="text/javascript" src="../source/org/tool-man/cookies.js"></script>
  #5 (permalink)  
Antiguo 17/06/2009, 20:23
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Consulta sobre Drag and Drop

Nadie ?


Nada de nada?
  #6 (permalink)  
Antiguo 18/06/2009, 06:50
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Consulta sobre Drag and Drop

Nadie me puede decir nada?

Aunque sea una minima idea remota?
  #7 (permalink)  
Antiguo 18/06/2009, 10:51
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Consulta sobre Drag and Drop

Hola.

Aqui encontre otro codigo creo que mas facil...

Alguien me podria decir como hago para enviar esta informacion desde un form a una pagina prosesa.php para guardarla en una db

o como hago para guardar lo que muestra en una db...?

ingreso el enlace del ejemplo y pego el codigo mas abajo

http://www.dhtmlgoodies.com/scripts/...-nodes-d2.html

Código HTML:
<html>
<head>
<title> Arrastrada </title>

	<style type="text/css">
	body{
		font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
		margin:0px;
		padding:0px;
		background-image:url('http://www.dhtmlgoodies.com/images/heading3.gif');
		background-repeat:no-repeat;
		padding-top:85px;					
		overflow:hidden;
		padding-left:10px;
		-moz-user-select:no;
	}
	
	/* Don't change these options */
	#movableNode{
		position:absolute;
	}
	
	#arrDestInditcator{
		position:absolute;
		display:none;
		width:100px;
	}
	/* End options that shouldn't be changed */

	
	#arrangableNodes,#movableNode ul{
		padding-left:0px;
		margin-left:0px;
		margin-top:0px;
		padding-top:0px;
	}
	
	#arrangableNodes li,#movableNode li{
		list-style-type:none;
		cursor:default;
	}

	</style>
	
	<script type="text/javascript">
	/************************************************************************************************************
	(C) www.dhtmlgoodies.com, October 2005
	
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
	
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
	
	Thank you!
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland
	
	************************************************************************************************************/	
	
	var offsetYInsertDiv = -3; // Y offset for the little arrow indicating where the node should be inserted.
	if(!document.all)offsetYInsertDiv = offsetYInsertDiv - 7; 	// No IE

	
	var arrParent = false;
	var arrMoveCont = false;
	var arrMoveCounter = -1;
	var arrTarget = false;
	var arrNextSibling = false;
	var leftPosArrangableNodes = false;
	var widthArrangableNodes = false;
	var nodePositionsY = new Array();
	var nodeHeights = new Array();
	var arrInsertDiv = false;
	var insertAsFirstNode = false;
	var arrNodesDestination = false;
	function cancelEvent()
	{
		return false;
	}
	function getTopPos(inputObj)
	{
		
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null){
	  	returnValue += inputObj.offsetTop;
	  }
	  return returnValue;
	}
	
	function getLeftPos(inputObj)
	{
	  var returnValue = inputObj.offsetLeft;
	  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
	  return returnValue;
	}
		
	function clearMovableDiv()
	{
		if(arrMoveCont.getElementsByTagName('LI').length>0){
			if(arrNextSibling)arrParent.insertBefore(arrTarget,arrNextSibling); else arrParent.appendChild(arrTarget);			
		}
		
	}
	
	function initMoveNode(e)
	{
		clearMovableDiv();
		if(document.all)e = event;
		arrMoveCounter = 0;
		arrTarget = this;
		if(this.nextSibling)arrNextSibling = this.nextSibling; else arrNextSibling = false;
		timerMoveNode();
		arrMoveCont.parentNode.style.left = e.clientX + 'px';
		arrMoveCont.parentNode.style.top = e.clientY + 'px';
		return false;
		
	}
	function timerMoveNode()
	{
		if(arrMoveCounter>=0 && arrMoveCounter<10){
			arrMoveCounter = arrMoveCounter +1;
			setTimeout('timerMoveNode()',20);
		}
		if(arrMoveCounter>=10){
			arrMoveCont.appendChild(arrTarget);
		}
	}
		
	function arrangeNodeMove(e)
	{
		if(document.all)e = event;
		if(arrMoveCounter<10)return;
		if(document.all && arrMoveCounter>=10 && e.button!=1 && navigator.userAgent.indexOf('Opera')==-1){
			arrangeNodeStopMove();
		}
		
		arrMoveCont.parentNode.style.left = e.clientX + 'px';
		arrMoveCont.parentNode.style.top = e.clientY + 'px';	
		
		var tmpY = e.clientY;
		arrInsertDiv.style.display='none';
		arrNodesDestination = false;
		

		if(e.clientX<leftPosArrangableNodes || e.clientX>leftPosArrangableNodes + widthArrangableNodes)return; 
			
		var subs = arrParent.getElementsByTagName('LI');
		for(var no=0;no<subs.length;no++){
			var topPos =getTopPos(subs[no]);
			var tmpHeight = subs[no].offsetHeight;
			
			if(no==0){
				if(tmpY<=topPos && tmpY>=topPos-5){
					arrInsertDiv.style.top = (topPos + offsetYInsertDiv) + 'px';
					arrInsertDiv.style.display = 'block';				
					arrNodesDestination = subs[no];	
					insertAsFirstNode = true;
					return;
				}				
			}
			
			if(tmpY>=topPos && tmpY<=(topPos+tmpHeight)){
				arrInsertDiv.style.top = (topPos+tmpHeight + offsetYInsertDiv) + 'px';
				arrInsertDiv.style.display = 'block';				
				arrNodesDestination = subs[no];
				insertAsFirstNode = false;
				return;
			}				
		}
	}
	
	function arrangeNodeStopMove()
	{
		arrMoveCounter = -1; 
		arrInsertDiv.style.display='none';
		
		if(arrNodesDestination){
			var subs = arrParent.getElementsByTagName('LI');
			if(arrNodesDestination==subs[0] && insertAsFirstNode){
				arrParent.insertBefore(arrTarget,arrNodesDestination);		
			}else{
				if(arrNodesDestination.nextSibling){
					arrParent.insertBefore(arrTarget,arrNodesDestination.nextSibling);
				}else{
					arrParent.appendChild(arrTarget);
				}
			}
		}		
		arrNodesDestination = false;
		clearMovableDiv();
	}		
	
	function saveArrangableNodes()
	{
		var nodes = arrParent.getElementsByTagName('LI');
		var string = "";
		for(var no=0;no<nodes.length;no++){
			if(string.length>0)string = string + ',';
			string = string + nodes[no].id;		
		}
		
		document.forms[0].hiddenNodeIds.value = string;
		
		// Just for testing
		document.getElementById('arrDebug').innerHTML = 'Ready to save these nodes:<br>' + string.replace(/,/g,',<BR>');	
		
		// document.forms[0].submit(); // Remove the comment in front of this line when you have set an action to the form.
		
	}
	
	function initArrangableNodes()
	{
		arrParent = document.getElementById('arrangableNodes');
		arrMoveCont = document.getElementById('movableNode').getElementsByTagName('UL')[0];
		arrInsertDiv = document.getElementById('arrDestInditcator');
		
		leftPosArrangableNodes = getLeftPos(arrParent);
		arrInsertDiv.style.left = leftPosArrangableNodes - 5 + 'px';
		widthArrangableNodes = arrParent.offsetWidth;
		
		var subs = arrParent.getElementsByTagName('LI');
		for(var no=0;no<subs.length;no++){
			subs[no].onmousedown = initMoveNode;
			subs[no].onselectstart = cancelEvent;	
		}
	
		document.documentElement.onmouseup = arrangeNodeStopMove;
		document.documentElement.onmousemove = arrangeNodeMove;
		document.documentElement.onselectstart = cancelEvent;
		
	}	
	
	window.onload = initArrangableNodes;
	
	</script>



</head>

<body>

<H1>Arrange the nodes below</H1>
<ul id="arrangableNodes">
	<li id="node1">Node no. 1</li>
	<li id="node2">Node no. 2</li>
	<li id="node3">Node no. 3</li>
	<li id="node4">Node no. 4</li>
	<li id="node5">Node no. 5</li>
	<li id="node6">Node no. 6</li>
	<li id="node7">Node no. 7</li>
	<li id="node8">Node no. 8</li>	
	<li id="node9">Node no. 9</li>	
	<li id="node10">Node no. 10</li>	
	<li id="node11">Node no. 11</li>	
	<li id="node12">Node no. 12</li>	
	<li id="node13">Node no. 13</li>	
	<li id="node14">Node no. 14</li>	
	<li id="node15">Node no. 15</li>	
</ul>	
<p>
	<a href="#" onclick="saveArrangableNodes();return false">Save</a>
</p>
<div id="movableNode"><ul></ul></div>	
<div id="arrDestInditcator"><img src="images/insert.gif"></div>
<div id="arrDebug"></div>
<form method="post" action="?????">
	<input type="hidden" name="hiddenNodeIds">
</form>





</body>

</html> 

Última edición por autista; 18/06/2009 a las 11:07
  #8 (permalink)  
Antiguo 19/06/2009, 09:51
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Consulta sobre Drag and Drop

Tema cerrado

Última edición por autista; 19/06/2009 a las 12:28
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 21:20.