Zum Inhalt springen

JavaScript und "select"


MadCro

Empfohlene Beiträge

hi zusammen,

hab ein kleines select feld was "multiple" ist, d.h. es können mehrere Einträge ausgewählt werden, nun muß ich wissen welche Einträge ich ausgewählt habe, soweit auch kein Problem klappt alles wunderbar.

 for(var i = 0; i < form.customer_having_storys.length; i++)

           {

              if(form.customer_having_storys[i].selected == true ) 

              {

                    alert("die story mit der ID" + form.customer_having_storys[i].value + "wurde gewählt") ; // das ganze nur als Bsp.

               } 

             } 



so nun aber muss ich das ganze erweitern und wissen welcher Eintrag als letztes ausgewählt wurde, also wenn ich z.B. drei Einträge ausgewählt habe will ich wissen welchen von diesen Drei als letzte ausgewählt wurde, da ich zu diesem weiteren Infos anzeigen muss. Hab leider keine Ahnung wie ich das lösen könnte, googlen hat auch nichts gebracht. Jemand von Euch eine Idee ?

Danke

Gruß

:marine

Link zu diesem Kommentar
Auf anderen Seiten teilen

zeig einfach bei jedem "onchange" die Infos zu dem ausgewählten artikel an.

wenn es so einfach wäre :mod:

das Problem ist wenn ich einen Eintrag mit der ID 1 auswähle dann einen Eintrag mit der ID 5 und dann einen Eintrag mit der ID 3 dann sieht meine List so aus 1,3,5 aber ich will das sie so aussieht 1,5,3 also in der Reihe in der die Einträge auch ausgewählt wurden, damit ich als letzten ausgewählenten Eintrag den Eintrag mit der ID 3 habe :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

wenn es so einfach wäre :mod:

Es ist so einfach!

So sollte es gehen:

JS:



var aDescriptions = new Array();

aDescriptions[0] = "Beschreibung 1";

aDescriptions[1] = "Beschreibung 2";

aDescriptions[2] = "Beschreibung 3";


function showDescription( iValue) {

   document.getElementById( "Description").value = aDescriptions[ iValue -1]);

}

HTML:

<select name="Select" onchange="showDescription( this.value)">

<option value="1">Option1</option>

<option value="2">Option2</option>

<option value="3">Option3</option>

</select>


<div id="Description">

</div>

ungetestet!

notfalls musst du mit onclick arbeiten !

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, dann wirst du bei jedem onChange_click dir die gerade ausgebwählte ID irgendwo merken müssen(Verstecktes Listenfeld etc.), anders (also bei direkter Feldabfrage) merkt man nur die ausgweählten, nicht aber die Reihenfolge der Auswahl.

das geht nicht, weil lastSelectedIndex mir immer nur den Index ausgibt der der kleinste Index der gewählten Einträge ist

das hier genau so

<select ...blabla... onChange="JavaScript:ShowData(this.value)" >

function ShowData(value)

{

alert (value) ;

}

es wird immer der Wert ausgegeben der als erster in der Liste steht (also den kleinsten Index hat) :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, wenn du es wirklich so haben möchtest, dann müßtest du dir in einem eigenen Array den Zustand merken und, sobald der User was ändert, über onClick() überprüfen, welcher Eintrag denn dazugekommen/hinweggekommen ist. Dementsprechend kannst du dann mit kills Methode in einem div-Feld dynamisch Information anbieten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi,

ja die Idee mit dem Array habe ich auch schon gehabt, aber das array wird jedes mal neu inizlalisiert wenn ich dei Funktion die bei OnChange (oder onClick) aufgerufen wird und damit sind alle daten die ich im Array hate doch wieder weg

hehe ich idiot ich kann ja das array aushalb der function inizialisieren :floet:

jetzt kalppt, danke allen !!



   function ShowComment(form, SelectName)

   {


         for(var i = 0; i < form.elements[SelectName].length; i++)

  	 { 


  	 	imArray = false ;



		 if(form.elements[SelectName][i].selected == true )

		 { 


		 	if(StorysArray.length > 0)

		 	{


		 		for(var k=0; k< StorysArray.length ; k++) // für jede story die schon im array ist

		 		{

		 			if(StorysArray[k] == form.elements[SelectName][i].value)

		 			{

		 				imArray = true ;	

		 			}


		 		}


		 	        if(imArray == false)

		                {


		       	           StorysArray[j] = form.elements[SelectName][i].value ; // noch nicht im array also schreib rein

		                   j++ ;

		                } 


		 	}

		 	else

		 	{   

		 	       StorysArray[j] = form.elements[SelectName][i].value ;

		               j++ ;


		 	}	

		 	 	}


	          last_ID = StorysArray[StorysArray.length-1] ; // der letze eintrag im array muss doch dem letzen ausgesuchten Eintrag entsprechen 

		  alert(last_ID);


   }



EDIT

doch nicht ganz, was mache ich den wenn ein Eintrag wieder deselctiert wurde :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok also fals es jemand interessiert, der ganze code nun



 StorysArray = new Array();

    j = 0 ;



   function ShowComment(form, SelectName)

   {


         for(var i = 0; i < form.elements[SelectName].length; i++)

  	 {  

  	 	imArray = false ;


		 if(form.elements[SelectName][i].selected == true )

		 { 


		 	if(StorysArray.length > 0)

		 	{


		 		for(var k=0; k< StorysArray.length ; k++) // für jede story die schon im array ist

		 		{

		 			if(StorysArray[k] == form.elements[SelectName][i].value)

		 			{

		 				imArray = true ;	

		 			}


		 		}


		 	        if(imArray == false)

		                {


		       	           StorysArray[j] = form.elements[SelectName][i].value ; // noch nicht im array also schreib rein

		                   j++ ;

		                } 


		 	}

		 	else // es ist der erste Aufruf das array ist noch leer

		 	{   

		 	       StorysArray[j] = form.elements[SelectName][i].value ;

		               j++ ;


		 	}	


		 }

		 else // ist nicht selectiert mal gucken ob ich es aus dem array werfen muss

		 {    


		 		for(var k=0; k< StorysArray.length ; k++) // für jede story die schon im array ist

		 		{

		 		        if(StorysArray[k] == form.elements[SelectName][i].value) // das element ist im array aber wurde "deselectiert" 

		 			{ 

		 				  StorysArray = StorysArray.slice(0,k);


		 			}


		 		}


		 }


	}


	          ST_ID = StorysArray[StorysArray.length-1] ; // der letze eintrag im array muss doch dem letzen ausgesuchten Eintrag entsprechen 

		 // alert(ST_ID);


		  qPopUp("show_story_comment.php?ST_ID="+ST_ID) ;


   }




Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...