webForumDet fria alternativet

Scriptfråga Jojjox

JavaScript

10 svar · 750 visningar · startad av Webslave

Medlem sedan maj 2002647 inlägg
Frågan#1

En fråga om Jojoxx script. Hittade det här scriptet på hans sida om att flytta data från en lista till en annan och undrar nu hur man får den att bara kopiera raden till den andra... inte flytta den? Och om någon har något bra tips på hur man gör en "ta bort" funktion på den listan man lägger över i?

Medlem sedan nov. 20017 144 inlägg
#2

Nej, det känns dumt måste jag säga. Ställ en allmän fråga istället för att skriva medlemmens namn i inlägget.Du kan ta bort det blåa:

function selectMoveSelected(from,to){
	for(var n=0;n<from.length;n++){
		if(from[n].selected){ to[to.length]=new Option(from[n].text,from[n].value); 
		}
	}
	[blue]for(var n=from.length-1;n>=0;n--){
		if(from[n].selected){ from[n]=null; }
	}[/blue]
}
Medlem sedan maj 2002647 inlägg
#3

Ändrat rubriken och inlägget... ;)

Vad ska din kod göra då? När jag testar den så händer samma sak som i Jojoxx script dvs att den flyttar hela raden från den ena listan till den andra... eller har jag feberyra? :D

Medlem sedan nov. 20017 144 inlägg
#4

Japp, måste vara feberyra.
Nej då jag testade det och det borde rimligtvis också fungera på samma sätt hos dig.
Denna rad: if(from[n].selected){ from[n]=null; }
Talar ju om att option-värdet skall sättas till null på de som är uppmarkerade, så om du tar bort det blåa så skall det funka.
Testa igen. ;)

Medlem sedan maj 2002647 inlägg
#5

TACK! (jag som läst galet... hehe)

Följdfråga: När jag submittar formläret så följer det bara med data om jag har en rad markerad i den list som raderna är kopierade till... och endast den raden som är markerad, ingen annan. Någon idé varför?

Medlem sedan maj 200010 687 inlägg
#6

Så select-listor fungerar. Endast markerade val skickas.
Antingen får du markera alla val vid submit eller så får du slänga in valen i ett hidden fält. Det sistnämda kan vara att föredra då gränssnittet ser lite tattigt ut när saker markeras o blinkar till.

Medlem sedan maj 2002647 inlägg
#7

Aha, ser man på. Man lär sig något nytt varje dag :D Får jag försöka lirka till det så att man lägger till/tar bort det i ett hidden samtidigt som man flyttar det mellan listorna... blir intressant :)

Tack i alla fall!

Medlem sedan maj 2002647 inlägg
#8

Ok... jag har pillat och letat och jag kommer bara fram till att jag inte vet vad jag sysslar med :). Någon som har lust att peka mig i rätt riktning? Vill alltså lägga till/ta bort samma saker som jag lägger över i den, från början, tomma listan. Scriptet ser ut såhär:

function selectMoveSelected(from,to){
	for(var n=0;n<from.length;n++){
		if(from[n].selected){
			to[to.length]=new Option(from[n].text,from[n].value); 
		}
	}
}

function removeSelected(from){
	for(var n=from.length-1;n>=0;n--){
		if(from[n].selected){
			from[n]=null;
		}
	}
}

Vi kan säga att hidden fältet heter "hiddenData"

Medlem sedan maj 200010 687 inlägg
#9

Jag hänger inte med riktigt. Vill du lägga in saker i hidden-fältet för att det ska submittas? Eller vill du fylla den tomma listan med förvalda från början?

Medlem sedan maj 2002647 inlägg
#10

Det jag skulle vilja är att samtidigt som man lägger till en rad i listan så ska det värdet in i det dolda fältet samt med någon form av "bryt" som ett , eller liknande för att man enkelt ska kunna köra en explode på den i nästa steg och loopa igenom dem. Sedan även att man tar bort vald rad från det dolda fältet om man tar bort det från listan... kanske lite bökigt, jag vet inte :)

Medlem sedan maj 200010 687 inlägg
#11

Lättast är att onsubmit plocka alla värden från selectlistan o stoppa in i hidden fältet.

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)