webForumDet fria alternativet

Sortera kapitel

7 svar · 163 visningar · startad av Chavez

ChavezMedlem sedan maj 20001 297 inlägg
#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!

JojoxxMedlem sedan juni 20004 306 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

ChavezMedlem sedan maj 20001 297 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!

ChavezMedlem sedan maj 20001 297 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!

JojoxxMedlem sedan juni 20004 306 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

ChavezMedlem sedan maj 20001 297 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!

JojoxxMedlem sedan juni 20004 306 inlägg
#7

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

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

ChavezMedlem sedan maj 20001 297 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!

Genererad på 378 ms · cache AV · v20260730165559-full.f96bc7eb