Jumper: Auswahl--> Veränderung

Hi,
leider weiß ich nicht, ob man das mit HTML machen kann, schreibe es aber trotzdem mal hier rein.

Also, ich möchte ein Formular erstellen um z.B. Karten zu bestellen.
Dann will ich etwas, wo ich auswählen kann wieviele Karten und gleichzeitig je nach Anzahl weiter unten/ daneben der Preis insgesamt gezeigt wird.
Also wenn ich 1 Karte nehme soll 20 € gezeigt werden, wenn ich 2 Karten wähle soll 40 € gezeigt werden.

Ihr müsst es mir das nicht schreiben (worüber ich mich auch freuen würde), nur sagen wie ich das machen soll, wär schön.

Danke =)

  1. Hallo,

    leider weiß ich nicht, ob man das mit HTML machen kann

    was du willst, ist eine dynamische Reaktion auf Benutzereingaben - das ist mit HTML nicht zu machen, dafür braucht's Javascript.

    Also, ich möchte ein Formular erstellen um z.B. Karten zu bestellen.

    Das kriegen wir noch mit HTML allein hin. Die serverseitige Auswertung nach dem Absenden des Formulars natürlich nicht.

    Dann will ich etwas, wo ich auswählen kann wieviele Karten und gleichzeitig je nach Anzahl weiter unten/ daneben der Preis insgesamt gezeigt wird.

    Also brauchst du ein Javascript, das zu einem geeigneten Zeitpunkt die aktuellen Werte der Formular-Elemente liest, aus Anzahl und Einzelpreis die Gesamtsumme berechnet und diesen Endwert wieder irgendwo hinschreibt (z.B. in ein weiteres Textfeld mit readonly-Status, oder mit innerHTML in ein beliebiges Element).

    Geeignete Zeipunkte könnten sein:
     * wenn der Inhalt eines Textfelds verändert wurde
     * wenn eine Taste gedrückt wurde
     * oder zeitgesteuert in kurzen Intervallen

    Also wenn ich 1 Karte nehme soll 20 € gezeigt werden, wenn ich 2 Karten wähle soll 40 € gezeigt werden.

    Denk aber daran, dass Javascript deaktiviert sein könnte. Es ist für das Funktionieren eines solchen Formulars nicht entscheidend, dass die Ensdumme stets aktuell angezeigt wird; falls du die Endsumme aber als Formularwert mit absenden möchtest, verlass dich nicht darauf, dass sie vorhanden und korrekt ist.

    So long,
     Martin

    --
    Wer morgens zerknittert aufsteht, hat den ganzen Tag Gelegenheit, sich zu entfalten.
  2. Ihr müsst es mir das nicht schreiben (worüber ich mich auch freuen würde), nur sagen wie ich das machen soll, wär schön.

    Ich würde ein Affenformular mit serverseitiger Verarbeitung (zur Berechnung des Preises) erstellen. Zusätzlich kann dann beim Ändern der Formularfelder/Dropdowns der Wert auch dynamisch mittels JavaScript (oder auch serverseitig, per Ajax abgeholt) berechnet werden ohne die Seite neu zu laden.

    1. Hallo,

      Ihr müsst es mir das nicht schreiben (worüber ich mich auch freuen würde), nur sagen wie ich das machen soll, wär schön.
      Ich würde ein Affenformular mit serverseitiger Verarbeitung (zur Berechnung des Preises) erstellen.

      ich weiß ja nicht, ob ich die Intention des OP richtig verstanden habe, aber für mich klang die Beschreibung nur danach, aus einer Auswahl von endlich vielen (vermutlich nur wenigen) Produkten/Entrittskarten durch Eingabe oder Nichteingabe einer Stückzahl eine Bestellung zu bilden.
      Was machst du dabei mit dem Affenformular? - Okay, für den Fall einer Sinnlos-Eingabe vielleicht.

      Zusätzlich kann dann beim Ändern der Formularfelder/Dropdowns der Wert auch dynamisch mittels JavaScript (oder auch serverseitig, per Ajax abgeholt) berechnet werden ohne die Seite neu zu laden.

      Auch hier: Vermutlich mit Elefanten auf Mücken geschossen. Wenn die Zahl der auswählbaren Produkte nicht sehr groß ist, kann ich die Preistabelle auch komplett im JS übermitteln und brauche bei der dynamischen Summierung nicht zwischendurch den Server zu fragen.
      Wenn ich natürlich einen Artikelstamm mit mehreren tausend Posten habe ...

      So long,
       Martin

      --
      Vielseitigkeit: Von vielen Dingen keine Ahnung haben.
      1. Was machst du dabei mit dem Affenformular?

        Ein "Preis berechnen"-Button sollte ggf. nicht sofort das Formular unwiederbringlich abfeuern oder?

        Auch hier: Vermutlich mit Elefanten auf Mücken geschossen. Wenn die Zahl der auswählbaren Produkte nicht sehr groß ist, kann ich die Preistabelle auch komplett im JS übermitteln und brauche bei der dynamischen Summierung nicht zwischendurch den Server zu fragen.

        Darum habe ich auch beide Varianten vorgeschlagen. Sich zu wiederholen ist aber niemals schlau - aus drei Artikeln werden schnell vier, dann fünf - dann 10. Bei einer Ergänzung 3 Monate später übersieht man dann schon mal, dass es eine JavaScript- und eine Serverseitige Variante gibt, die synchron gehalten werden müssen.

        1. Hi,

          Was machst du dabei mit dem Affenformular?
          Ein "Preis berechnen"-Button sollte ggf. nicht sofort das Formular unwiederbringlich abfeuern oder?

          ähm, nein ...
          Aber ich bin auch nicht auf die Idee gekommen, dass es einen solchen Button geben könnte. Ich dachte an eine Preis-Anzeige simultan zur Eingabe (onchange, onkeypress, onclick o.ä.) oder eben gar nicht, bzw. erst mit dem nächsten Schritt, der zwangsläufig folgen muss: Wenn ich etwas bestelle, muss ich zusätzlich zum bestellten Produkt auch noch Angaben zur Bezahlung und zur Lieferung machen. Spätestens in diesem zweiten Schritt steht dann der Endpreis (vorbehaltlich eventueller Versandkosten) fest.

          Bei einer Ergänzung 3 Monate später übersieht man dann schon mal, dass es eine JavaScript- und eine Serverseitige Variante gibt, die synchron gehalten werden müssen.

          Das kann passieren, ja. Ein Grund mehr, warum ich eine solche dynamische Aktualisierung gar nicht erst empfehlen würde. Ich finde den typischen Ablauf von Online-Bestellungen in mehreren Schritten eigentlich ganz okay:
           1. Seite: Artikel eingeben
           2. Seite: Vorläufige Endsumme steht fest
              Lieferart und -anschrift eingeben (oder Kundennummer o.ä.)
           3. Seite: Zahlungsart auswählen und Bestellung endgültig bestätigen
          Eventuell wird Schritt 2 und Schritt 3 zu einem zusammengefasst; eventuell gibt es noch einen Schritt 4, der nur noch eine Gesamtübersicht aller Daten zeigt und dann erst die verbindliche Bestellung auslöst. Beide Varianten sind mir auch in freier Wildbahn schon begegnet.

          So long,
           Martin

          --
          Man sollte keinen Senf von sich geben, wenn man nicht auch das Würstchen dazu liefern kann.
  3. Mahlzeit Jumper,

    leider weiß ich nicht, ob man das mit HTML machen kann,

    Nein, kann man nicht.

    Also, ich möchte ein Formular erstellen um z.B. Karten zu bestellen.

    <http://de.selfhtml.org/html/formulare/definieren.htm#bereich@title=Dann tu das.>

    Dann will ich etwas, wo ich auswählen kann wieviele Karten

    <http://de.selfhtml.org/html/formulare/auswahl.htm#listen@title=Dann tu das.>

    und gleichzeitig je nach Anzahl weiter unten/ daneben der Preis insgesamt gezeigt wird.

    http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange@title=Dann http://de.selfhtml.org/javascript/objekte/options.htm#selected_index@title=tu http://de.selfhtml.org/javascript/objekte/elements.htm#value@title=das.

    Also wenn ich 1 Karte nehme soll 20 € gezeigt werden, wenn ich 2 Karten wähle soll 40 € gezeigt werden.

    http://de.selfhtml.org/javascript/sprache/regeln.htm@title=Dann http://de.selfhtml.org/javascript/sprache/variablen.htm@title=tu http://de.selfhtml.org/javascript/sprache/operatoren.htm@title=das.

    Ihr müsst es mir das nicht schreiben (worüber ich mich auch freuen würde), nur sagen wie ich das machen soll, wär schön.

    Nicht mit HTML. HTML ist eine reine Auszeichnungssprache, die beschreibt, welche Struktur ein Dokument hat. Mehr nicht. Für sich dynamisch ändernde Inhalte gibt es Programmiersprachen wie z.B. Javascript.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  4. Hi,
    leider weiß ich nicht, ob man das mit HTML machen kann, schreibe es aber trotzdem mal hier rein.

    Definitiv nicht. Rechnen ist nur mit Programmiersparchen oder beschränkt mit der Counterfunktion in CSS möglich und das auch nur im Firefox und im Opera oft fehlerhaft.

    Also, ich möchte ein Formular erstellen um z.B. Karten zu bestellen.
    Dann will ich etwas, wo ich auswählen kann wieviele Karten und gleichzeitig je nach Anzahl weiter unten/ daneben der Preis insgesamt gezeigt wird.
    Also wenn ich 1 Karte nehme soll 20 € gezeigt werden, wenn ich 2 Karten wähle soll 40 € gezeigt werden.

    Da ich dein Formular nicht kenne, kann ich nichts Spezielles anbieten.
    Hier kann ich dir jetzt nur 2 Lösungsansätze präsentieren:
     - CSS: Vielleicht hilft dir folgender Code, der aber nur im Firefox richtig interpretiert wird, weiter. Für die anderen Browser müsstest du eben mit JavaScript arbeiten. Ich glaube aber, für Formulare nützt dir dies wenig:

      
    body {counter-reset:zaehler;}  
    div:before {content:counter(zaehler);}  
    span:hover {counter-increment:zaehler 20;}  
    
    
      
        <span>1 Karte  
        <span>2 Karten  
        <span>3 Karten</span></span></span>  
        <div></div>  
    
    

    - JavaScript: Je nach dem, wie dein Formular aufgebaut ist, musst du diesen Code bearbeiten. Ich gehe von INPUT aus:

      
    Element.onchange = function() {  
      var Inhalt = parseInt(this.value.replace(/\D+/g, ''));  
      if(isNaN(Inhalt)) {  
        alert('Bitte geben sie einen nummerischen Wert ein.');  
        this.focus();  
        return false;  
      }  
      this.value = Inhalt;  
      document.getElementById('summe').firstChild.nodeValue = (Inhalt * 20) + ',00 EUR';  
    }  
    
    

    (nicht getestet)

    lg JeSchnell