Foros del Web » Programando para Internet » Javascript »

Ordenar Lista(Select) y Mantener el orden despues de Submit!

Estas en el tema de Ordenar Lista(Select) y Mantener el orden despues de Submit! en el foro de Javascript en Foros del Web. Hola a todos, A ver si alguna mente brillante puede ayudarme con esto.... Tengo 2 dias pensando como hacerlo y no me sale El sgt ...
  #1 (permalink)  
Antiguo 08/08/2008, 08:59
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta Ordenar Lista(Select) y Mantener el orden despues de Submit!

Hola a todos,

A ver si alguna mente brillante puede ayudarme con esto.... Tengo 2 dias pensando como hacerlo y no me sale

El sgt codigo lo baje de una pagina, lo que hace es ordenar con bootnes arriba y abajo, los elementos de una lista:

************************************************** ************************************************** *****<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<script src="orden.js" type="text/javascript"></script>
<script language="JavaScript">

var elementos = new Array();

elementos[0]="Hola";
elementos[1]="L�ea";
elementos[2]="Cuadrado";
elementos[3]="Tri�gulo";
elementos[4]="El Sol";
elementos[5]="La Luna";


function imprime_listado_basico(){
texto="";
for (i=0;i<elementos.length;i++){
texto += elementos[i];
if (i!=0){
texto += " <a href='#' onclick='arriba(" + i + ")'>arriba</a>";
}
if (i!=elementos.length-1){
texto += " <a href='#' onclick='abajo(" + i + ")'>abajo</a>";
}
texto += "<br>";
}
xInnerHtml('listado_elementos',texto);
}

function imprime_listado(){
texto="<table>";
for (i=0;i<elementos.length;i++){
texto += "<tr bgcolor='#eeeeee'>";
texto += "<td>" + elementos[i] + "</td>";
if (i!=0){
texto += "<td><a href='#' onclick='arriba(" + i + ")'><img src='arriba.gif' width=9 height=9 border=0></a></td>";
}else{
texto += "<td></td>";
}
if (i!=elementos.length-1){
texto += "<td><a href='#' onclick='abajo(" + i + ")'><img src='abajo.gif' width=9 height=9 border=0></a></td>";
}else{
texto += "<td></td>";
}
texto += "</tr>";
}
texto += "</table>";
xInnerHtml('listado_elementos',texto);
}

function arriba(i){
temporal = elementos[i];
elementos[i]=elementos[i-1];
elementos[i-1]=temporal;
imprime_listado()
}

function abajo(i){
temporal = elementos[i];
elementos[i]=elementos[i+1];
elementos[i+1]=temporal;
imprime_listado()
}

</script>

</head>

<body onload="imprime_listado()">

<div id="listado_elementos">

</div>
</body>
</html>

************************************************** ************************************************** *****

Ok, el Js es :
************************************************** *********************
/* orden.js compiled from X 4.0 with XC 0.28b. Distributed under GNU LGPL. For copyrights, license, documentation and more visit Cross-Browser.com */
var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xNN4,xUA=navigator. userAgent.toLowerCase();
if(window.opera){
var i=xUA.indexOf('opera');
if(i!=-1){
var v=parseInt(xUA.charAt(i+6));
xOp7Up=v>=7;
xOp6Dn=v<7;
}
}else if(navigator.vendor!='KDE' && document.all && xUA.indexOf('msie')!=-1){
xIE4Up=parseFloat(navigator.appVersion)>=4;
xIE4=xUA.indexOf('msie 4')!=-1;
xIE5=xUA.indexOf('msie 5')!=-1;
}else if(document.layers){
xNN4=true;
}
xMac=xUA.indexOf('mac')!=-1;

function xGetElementById(e){
if(typeof(e)!='string') return e;
if(document.getElementById) e=document.getElementById(e);
else if(document.all) e=document.all[e];
else e=null;return e;
}

function xInnerHtml(e,h){
if(!(e=xGetElementById(e)) || !xStr(e.innerHTML)) return null;
var s = e.innerHTML;
if (xStr(h)) {
e.innerHTML = h;
}
return s;
}

function xStr(s){
for(var i=0; i<arguments.length; ++i){
if(typeof(arguments[i])!='string')
return false;
}
return true;
}
************************************************** *********************

Ok, las imagenes q ven ashi son 2 imagenes de flechitas cualquiera ... Ok ahora el PROBLEMA, es que me ordena todo de maravilla, pero este codigo necesito usarlo en un sitio que tengo, el cual tiene un submit... cuando se hace submit a la pagina todo se daña :( es decir el orden NO se conserva y vuelve a quedarse tal como estaba al inicio por default :(

Alguien puede decirme como mantener el orden que he realizado(con lso botoncitos arriba y abajo) a pesar de que haga un submit en la pagina ?????????

Por favor help me
  #2 (permalink)  
Antiguo 08/08/2008, 09:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ordenar Lista(Select) y Mantener el orden despues de Submit!

Olvidaba decirles que no importa si se hace la ordenacion dentro de un SELECT, lo unico que deseo es que alguien me pase un script en el cual se ordene los elementos de una lista y que este orden se mantenga despues de hacer un Submit ..

Gracias
  #3 (permalink)  
Antiguo 08/08/2008, 09:50
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: Ordenar Lista(Select) y Mantener el orden despues de Submit!

Hola dmlopez:

¿Dónde está el formulario? ¿Dónde está el submit? ¿Dónde está el SELECT? ¿Cómo quieres que se conserve algún orden si no lo guardas en ningún sitio?

Es una manera de ordenar elementos un tanto poco accesible: Lo dibujas con javascript y no sé cómo lo enviarás.


Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 08/08/2008, 10:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 5
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ordenar Lista(Select) y Mantener el orden despues de Submit!

Bueno pues ahorita le cambie los valores del arreglo, el js sigue siendo el mismo que les dije en el primer post, aqui el codigo completo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<script src="orden.js" type="text/javascript"></script>
<script language="JavaScript">

var elementos = new Array();

elementos[0]="Uno";
elementos[1]="Dos";
elementos[2]="Tres";
elementos[3]="Cuatro";


function imprime_listado_basico(){
texto="";
for (i=0;i<elementos.length;i++){
texto += elementos[i];
if (i!=0){
texto += " <a href='#' onclick='arriba(" + i + ")'>arriba</a>";
}
if (i!=elementos.length-1){
texto += " <a href='#' onclick='abajo(" + i + ")'>abajo</a>";
}
texto += "<br>";
}
xInnerHtml('listado_elementos',texto);
}

function imprime_listado(){


texto="<table>";
for (i=0;i<elementos.length;i++){
texto += "<tr bgcolor='#eeeeee'>";
texto += "<td>" + elementos[i] + "</td>";
if (i!=0){
texto += "<td><a href='#' onclick='arriba(" + i + ")'><img src='arriba.gif' width=9 height=9 border=0></a></td>";
}else{
texto += "<td></td>";
}
if (i!=elementos.length-1){
texto += "<td><a href='#' onclick='abajo(" + i + ")'><img src='abajo.gif' width=9 height=9 border=0></a></td>";
}else{
texto += "<td></td>";
}
texto += "</tr>";
}
texto += "</table>";
xInnerHtml('listado_elementos',texto);
}




function arriba(i){
temporal = elementos[i];
elementos[i]=elementos[i-1];
elementos[i-1]=temporal;
imprime_listado()
}

function abajo(i){
temporal = elementos[i];
elementos[i]=elementos[i+1];
elementos[i+1]=temporal;
imprime_listado()
}

</script>

</head>

<body onload="imprime_listado()">
<form name='formu' id='formu'>
<div id="listado_elementos">

</div>

<input type='submit' value='Guardar'>

</form>
</body>

</html>

*********************************

si lo pruebas te daras cuenta que lo ordena correctamente hasta que se hace click en el boton Guardar pues se recarga y se pierde el orden, espero eso te guie, gracias por tu respuesta!
  #5 (permalink)  
Antiguo 08/08/2008, 11:19
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: Ordenar Lista(Select) y Mantener el orden despues de Submit!

No entiendo

¿Cómo quieres que se envíe algo si no hay ningún campo de formulario para enviar nada? Evidentemente tu orden no se envía, un DIV con datos no se envía en un formulario. Lo único que se envía en un formulario son los campos <input> y los <textarea>, pero lo que intentas es que ocurra algo "por arte de magia".

Lo único que se me ocurre es que incluyas tu orden en un campo hidden mediante javascript cada vez que lo cambias, y así se envíe correctamente.



Saludos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 20:54.