webForumDet fria alternativet

Sortera kapitel

JavaScript

7 svar · 163 visningar · startad av Chavez

Medlem sedan maj 20001 953 inlägg
Frågan#1

Hej

Har en liten uppgift för er Javascript knackare. Behöver ett sätta att "sortera" kapitlen i en online skola i adminen.

Bäst vore om man kunde läsa in alla i en lista och att det sedan gick och dra och släppa för att ändra ordningen på dem. Det tror jag dock inte går?
Därför undrar jag om det är möjligt att skapa två listor av något slag, en där den gamla ordningen finns och sedan en där den nya finns. Så trixar man på något sätt över kapitel för kapitel till den nya listan i den ordningen som man vill. Det är Javascriptet för detta som jag vill åt, resten är lungt :e

Tacksam för hjälp!

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Sveriges PHP-portal nr 1!

Medlem sedan juni 20004 308 inlägg
#2

Det låter iofs som du söker ett serverside-script eftersom du vill kunna "läsa in" kaptitel, men här är några generella funktioner som du kanske kan ha hjälp av.

<form>
<select name="myList" size="3">
<option value="Kapitel A">Kapitel A</option>
<option value="Kapitel C">Kapitel C</option>
<option value="Kapitel B">Kapitel B</option>
</select>
<input type="button" value="Sortera" onClick="sortera(this.form.myList);">
<input type="button" value="Flytta upp" onClick="moveUp(this.form.myList);">
<input type="button" value="Flytta ner" onClick="moveDown(this.form.myList);">
</form>
<script type="text/javascript" language="JavaScript">
function sortera(obj){
	var myArray=new Array();
	for(var n=0;n<obj.length;n++){ myArray[n]=obj[n].value; }
	myArray.sort();
	for(var n=0;n<obj.length;n++){ obj[n].value=myArray[n]; obj[n].text=myArray[n]; }
}
function moveUp(obj){
	if(obj.selectedIndex>0){
		var temp=obj[obj.selectedIndex-1].value;
		obj[obj.selectedIndex-1].value=obj[obj.selectedIndex].value; obj[obj.selectedIndex-1].text=obj[obj.selectedIndex].value;
		obj[obj.selectedIndex].value=temp; obj[obj.selectedIndex].text=temp;
		obj.selectedIndex--;
	}
}
function moveDown(obj){
	if(obj.selectedIndex<obj.length-1&&obj.selectedIndex>-1){
		var temp=obj[obj.selectedIndex+1].value;
		obj[obj.selectedIndex+1].value=obj[obj.selectedIndex].value; obj[obj.selectedIndex+1].text=obj[obj.selectedIndex].value;
		obj[obj.selectedIndex].value=temp; obj[obj.selectedIndex].text=temp;
		obj.selectedIndex++;
	}
}
</script>

------------------
/ J

Medlem sedan maj 20001 953 inlägg
#3

Kalas kalas kalas säger jag bara. Funkade ju bättre än jag tänkt mig.

Nää, PHP:n klarar jag av, bygger ihop Javascriptet från informationen som finns i databasen. Det var bara det att jag inte visste hur Javascriptet skulle se ut. Tackar så mycket!

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Sveriges PHP-portal nr 1!

Medlem sedan maj 20001 953 inlägg
#4

Hmm .. kom på en sak. När man submittar den och skall plocka in värdena med PHP, du får man väl bara värdet i den som är markerad? Det är ju en select trots allt. Hur får man fram ordningen? :)

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Sveriges PHP-portal nr 1!

Medlem sedan juni 20004 308 inlägg
#5

När du submittar skickas bara markerade val (av förklarlig orsak) från selectlistan. Vill du veta (från något serverside-script) i vilken ordning de står i får du vid submit (onSubmit från form-taggen) slänga in alla värden i listan i ett hidden-fält som du sedan läser från.

------------------
/ J

Medlem sedan maj 20001 953 inlägg
#6

Kom också på det under mina sömnlösa timmar inatt. Tack för hjälpen!

Ps. Var lär man sig sådant här? :)

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Sveriges PHP-portal nr 1!

Medlem sedan juni 20004 308 inlägg
#7

Detta är väl ett rätt bra ställe? :)

------------------
/ J

Medlem sedan maj 20001 953 inlägg
#8

Har utnyttjar jag ju bara er som kan ju :)

Har en tjock fet bok om Javascript, men den handlar mest om design saker. Får kanske kolla igenom den igen! Klientsidan är så att säga min svagaste länk :)

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Sveriges PHP-portal nr 1!

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)