Ankündigung

Einklappen
Keine Ankündigung bisher.

Formulare Berechnen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formulare Berechnen

    Guten Abend,

    eines vorweg: ich habe erst mit HTML und CSS angefangen und hab mich ein wenig in PHP eingelesen aber noch nicht wirklich damit gearbeitet.

    Für ein Browsergame wollte ich nun einen Calculator über ein Formular machen, bei dem man das herzustellende Item über eine Auswahlliste und die Anzahl über ein Eingabefeld angibt. Beim drücken auf den Absende-Button (später wird dieser mit JS/JQuery ersetzt, möchte zuerst PHP lernen) soll nun eine Ausgabe erfolgen, wie viele Einheiten es für die bestimmte Anzahl des herzustellenden Items benötigt.

    Zum Beispiel:

    Herstellen: Mega Pot
    Anzahl: 1

    Benötigt werden 1 Pot "A", 3 Pot "B", 1 Pot "C".

    Ist dies alleine mit HTML/CSS und PHP möglich oder wird dazu noch SQL benötigt?

    Wie werden die Daten vom Formular übergeben und zB bei Anzahl = 5 automatisch hochgerechnet?

    Da ich momentan noch ganz am Anfang meines Lernstadiums bin, bitte ich dies ein wenig zu berücksichtigen.

    Tipps zum weiteren vorgehen sind gerne gesehen. Kleinere Codeschnippsel ebenfalls. Aber bitte keinen vollständigen Code, da ich ja schließlich etwas lernen möchte.

    Mein aktueller Code:

    Code:
    <section>
    <h1>BLALBA</h1>
    
    <form action="calc.php" method="post">
    
        <?php  /*
            $recipe = $_POST['recipe'];
            $quantity = $_POST['quantity'];
    
            if ($_POST['submit']) {
              if ($recipe, $quantity) {
                echo "done";
              }
              else {
                echo "Enter Quantity";
              }
            }
    */    ?>
    
        <p>
            <label for="recipe-text">Select Pot:</label>
                <select name="recipe">
                <option value="Pot 1">Pot 1</option>
                <option value="Pot 2">Pot 2</option>
                </select>
    
            <input type="text" id="quantity" name="Quantity" placeholder="Quantity">
    
            <input type="submit" value="Calc" ">
        </p>
    </form>
    </section>
    Als Editor benutze ich "Rapid PHP 2014".

    Bei dem aktuellen Code wird mir "section" und "form" ROT hinterlegt sowie das erste "p".
    Alles was nach dem "</p>" kommt wird mir grün hinterlegt und ist so nicht normal. Danach kommt nur noch der Footer und die End-Tags.

    Gehört eine <form> nicht in eine <section>?

    Der PHP-Code kann ignoriert werden. Ich hatte mir ein Tutorial angeschaut und versucht es nachzubauen. Da ich mich aber noch nicht mit PHP auskenne und nicht weiß was der Fehler ist, noch wie es weiter geht, habe ich ihn einfach auskommentiert.


    Mit freundlichen Grüßen
    rodaN

  • #2
    Zitat von rodaN Beitrag anzeigen
    Code:
              if ($recipe, $quantity) {
    Das ist zumindest mal ein Fehler in deinem PHP-Code, wenn es dir aber erstmal gar nicht um PHP geht, warum postest du es dann in die PHP-Rubrik?

    Was die Fehler angeht die deine IDE markiert angeht, kann ich dir nur bedingt helfen, weil ich die RapidPHP nicht kenne. Du kannst aber den vollständigen, generierten HTML-Quelltext (damit meine ich das was rauskommt wenn du im Browser auf "Quelltext anzeigen" gehst) auf Validome oder mit dem W3C Validator auf Gültigkeit überprüfen. Dort stehen dann auch Tipps wie du mögliche Probleme beheben kannst, beispielsweise wenn du ein Element dort nicht verwenden darfst.

    Kommentar


    • #3
      Es ist nicht mehr zeitgemäß, Anwendungslogik und Ausgabelogik zu kombinieren. Dadurch leidet die Wartbarkeit beider Komponenten. In der Regel folgen in PHP geschriebene Applikationen daher dem EVA-Muster, welches einen leicht nachvollziehbaren Datenfluss ermöglicht, besser wartbare Applikationen erzeugt und leichter von anderen Entwicklern verstanden wird. In der PHP-Welt hat sich hierauf aufbauend das (häufig falsch interpretierte) MVC-Muster [1] etabliert (siehe auch DCI oder ADR). Ganz einfach gesagt handelt es sich bei dem EVA-Muster um eine Aufteilung der Aktionen "Auswertung der Eingabeparameter", "Verarbeitung der damit verknüpften Anwendungslogik" und "Erzeugung und Übermittlung der Ausgabe". Oder vereinfacht: Erst Daten sammeln, dann daraus die Darstellung erzeugen und ausgeben. Die Verwendung einer Templateengine (mit Layout-Support) ist dafür Empfehlenswert - jedoch aber keine Voraussetzung.

      Kommentar


      • #4
        @Tropi

        Gut, das mit dem PHP war falsch formuliert. Erst möchte ich mal wissen ob das, was ich vorhabe, nur mit HTML/CSS und PHP zu lösen ist.
        Danach wäre ein Denkanstoß ganz nett, wie das ganze zu realisieren ist.
        Sobald ich mich dann durch die antworten durchgewühlt habe, werde ich auch spezifische PHP fragen dazu stellen.

        An den Validator habe ich gar nicht mehr gedacht. Dank ihm habe ich auch den Fehler gefunden: bei meinem submit-Button war ein " zu viel und wurde dadurch anscheinend nicht richtig geschlossen.

        @rkr

        Schwere Kost für einen der sich gar nicht mit Coding auskennt und Webcoding nur als Hobby lernen will.
        In wiefern erleichtert mir so eine Templateengine denn den einstieg in PHP? Sind dort nicht weitere Befehle die ich lernen muss und noch auf ganz andere Sachen acht gebe, statt auf das reine PHP?
        Gibt es dazu beispiel Seiten die mir so eine Templateengine näher bringt?

        Welche Webseiten empfiehlt ihr denn um PHP zu lernen? Momentan mache ich alles über Onlinetutorials.

        Kommentar


        • #5
          Es geht nur darum, Ordnung zu halten. Mache deine Aufgaben nacheinander, statt abwechselnd und durcheinander.

          Kommentar


          • #6
            Ich mal wieder.

            Die letzten Tage / Wochen habe ich mich weiter mit PHP beschäftigt und mich ein wenig in MySQL eingelesen.

            Eine Datenbank habe ich jetzt schon erstellt aber wie fülle ich diese nun am besten mit den Daten für das was ich vor habe?

            Ich möchte für jedes Rezept (Um einen bestimmten Gegenstand herzustellen) nun Werte eintragen. Die meisten Rezepte bauen aufeinander auf:

            Pot A -> 1x A + 2x B + 1x C
            Pot B -> 1x Pot A + 5x D

            Wie sollte am besten die Tabelle dafür aussehen? Brauche ich mehrere Tabellen / Datenbanken dafür?

            [EDIT]
            Mir ist da so ein Gedanke unter gekommen.

            In der ersten Spalte, also von links nach rechts (1. Reihe) alle verfügbaren "Items" einsetzen.
            Von Oben nach unten, beginnend in der 2. Reihe -> alle Rezepte.
            Dann jeweils die Anzahl für das Rezept unter dem entsprechenden Item als Zahl.

            Diese dann, wenn im Formular das gewählte Rezept und die Anzahl angegeben wurde, mit PHP / MySQL prüfen, berechnen und ausgeben.

            Kommt das hin oder gibt es einfachere Möglichkeiten?
            [/EDIT]

            Wenn die Daten dann eingetragen sind, wie kann ich diese dann im Formular - wie im ersten Post - berechnen? (Der PHP Code im ersten Post kann ignoriert werden, dieser wird, sobald ich hier eine Antwort erhalte, neu aufgebaut.)

            Kommentar

            Lädt...
            X