moin,
ich arbeite gerade an einem (html-)formular, das eine etwas eigentuemliche eingabe erfordert. ich kann javascript quasi gar nicht, und das DOM-gefuhrwerke macht mir angst. und zwar habe ich in besagtem formular ein multiselect-item, das diverse options enthaelt.
nehmen wir der einfachheit halber mal an, das multiselect enthaelt pizzen. nun soll ein benutzer hergehen koennen und mehrere pizzen auswaehlen duerfen. sobald er eine pizzasorte ausgewaehlt hat, soll sich ein eingabefenster oeffnen, das eine abfrage ueber die anzahl der pizzen dieses typs macht.
letztendlich moechte ich dann wissen, wieviele pizzen welcher art verlangt wurden.
rudimentaererweise:
der rueckgabewert dieses prompt() soll nun wiederum dazu verwendet werden, ein verstecktes input element zu erstellen, welches dann innerhalb des formulars eingefuegt wird. natuerlich sollte beim DEselektieren eines eintrags ein solches element wieder entfernt werden und keine abfrage stattfinden. das hinzufuegen habe ich mir so ueberlegt:
wie man sieht hab ich da noch sehr viele luecken. ich lese staendig irgendwas von getElementById() und -Name(), was mir auch durchaus sinnvoll erscheint, bei versuchen, damit umzugehen, geht aber einfach alles schief.
wonach ich suche ist vermutlich eine einzige funktion, die durch das onchange-event im select-element ausgeloest wird und in pseudocode etwa so aussieht:
irgendwie muss man hier wohl auch noch zwischen dem option-teil der ge-change-ten auswahl und dem im else-teil erstellten feld einen bezug herstellen, damit der if-teil funktionieren kann.
wie man vielleicht merkt, habe ich echt keinen plan, wie das elegant funktionieren soll. ich waere fuer ein passendes beispiel wirklich extrem dankbar. hier mal ein schnipsel, wie der code (ganz javafrei) aussieht:
ein erwuenschtes unsichtbares input-feld saehe fuer zwoelf pizzen der nummer 3 so aus:
danke :[
ich arbeite gerade an einem (html-)formular, das eine etwas eigentuemliche eingabe erfordert. ich kann javascript quasi gar nicht, und das DOM-gefuhrwerke macht mir angst. und zwar habe ich in besagtem formular ein multiselect-item, das diverse options enthaelt.
nehmen wir der einfachheit halber mal an, das multiselect enthaelt pizzen. nun soll ein benutzer hergehen koennen und mehrere pizzen auswaehlen duerfen. sobald er eine pizzasorte ausgewaehlt hat, soll sich ein eingabefenster oeffnen, das eine abfrage ueber die anzahl der pizzen dieses typs macht.
letztendlich moechte ich dann wissen, wieviele pizzen welcher art verlangt wurden.
rudimentaererweise:
Code:
<select name='pizzen' multiple='multiple' onchange='prompt("wieviele davon?",1);'>
Code:
var newHiddenInput = document.createElement("input");
newHiddenInput.type = "hidden";
newHiddenInput.name = "pizza[" + i + "]";
newHiddenInput.value = promptreturnvonebengerade;
fuegdenrotzirgendwieein();
wie man sieht hab ich da noch sehr viele luecken. ich lese staendig irgendwas von getElementById() und -Name(), was mir auch durchaus sinnvoll erscheint, bei versuchen, damit umzugehen, geht aber einfach alles schief.
wonach ich suche ist vermutlich eine einzige funktion, die durch das onchange-event im select-element ausgeloest wird und in pseudocode etwa so aussieht:
Code:
funktion Anzahl {
if (ausloesende_option.selected == true)
then loesche getElementById("pizza_i");
else prompt(wieviele?)
erstelle unsichtbares input mit passendem name/value
fuege es ein
}
wie man vielleicht merkt, habe ich echt keinen plan, wie das elegant funktionieren soll. ich waere fuer ein passendes beispiel wirklich extrem dankbar. hier mal ein schnipsel, wie der code (ganz javafrei) aussieht:
Code:
<html><head><title>Test</title>
<script type="text/javascript">
function Anzahl () {
// hier dann irgendwas
}
</script>
</head><body>
<form name="Auswahl" method="post">
<select name="produkte[]" multiple='multiple' onchange="Anzahl()">
<option value="pizza_3">drei</option>
<option value="pizza_1">eins</option>
</select>
<input type='submit' value='klick'>
</form>
</body></html>
Code:
<input type='hidden' name='anzahl[3]' value='12' />
danke :[
. die idee mit dem hiddenfeld je option kam mir auch schon, das finde ich allerdings graesslich in bezug auf sauberkeit des sourcecodes und den overhead. denn soein input field hat geschaetzte 60 characters. und wenn ich nun mal ne auswahl von 100 pizzen habe und nur eine ausgewaehlt wird, macht das schlappe 6 nutzlose kbyte.