Veröffentlicht 6. September 200420 j 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
6. September 200420 j 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
6. September 200420 j wenn es so einfach wäre :mod: 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.
6. September 200420 j 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 !
6. September 200420 j 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)
6. September 200420 j hej Kills, danke für Deine Mühe aber den JS Code verstehe ich nicht so ganz, was genau willst Du damit erreichen ? danke
6. September 200420 j 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.
6. September 200420 j 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
6. September 200420 j 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:
6. September 200420 j 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) ; }
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.