Frage zur Formularverarbeitung

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

  • Frage zur Formularverarbeitung

    Hallo zusammen,

    ich bin immer noch mit meinem Tippspiel dran (werde es wohl nicht mehr bis Samstag schaffen ). Naja, jetzt bin ich an dem Punkt, wo man Tippen kann. Hoffe das gehört auch zu PHP und nicht doch noch zu HTML. Dafür habe ich folgendes Script:

    PHP-Code:
    <?
    include('config.php');
    $sql = sprintf("Select `spielID`, `gruppe`, `mannschaft_1`, 
    `mannschaft_2`, `spielort`, `datum`, `uhrzeit` From `spiele` 
    Where `gruppe` = '%s' AND `tore_m1` = '' AND `tore_m2` = ''", 
    mysql_real_escape_string($_GET['gruppe']));
    $query = mysql_query($sql);


    echo "<h3>Gruppe ".$_GET['gruppe']."</h3>";
    echo "<form method='POST' action='index1.php?a=register_tipp'> \n";
    echo "<table border='1'> \n";
    echo "<tr> \n";
    echo "<td><b>Datum</b></td> \n";
    echo "<td colspan='3'><b>Begegnung</b></td> \n";
    echo "<td colspan='3'><b>Tipp</b></td> \n";
    echo "<td><b>Anstoss</b></td> \n";
    echo "</tr> \n";
    while ($spiel = mysql_fetch_assoc($query)) {
        echo "<tr> \n";
        echo "<td>".$spiel['datum']."</td> \n";
        echo "<td>".$spiel['mannschaft_1']."</td> \n";
        echo "<td> : </td> \n";
        echo "<td>".$spiel['mannschaft_2']."</td> \n";
        echo "<td><input type='text' name='tore_m1' maxlength='2' style='width:20px;'></td> \n";
        echo "<td> : </td> \n";
        echo "<td><input type='text' name='tore_m2' maxlength='2' style='width:20px;'></td> \n";
        echo "<td>".$spiel['uhrzeit']." Uhr</td> \n";
        echo "<td><input type='hidden' name='spielID' value='".$spiel['spielID']."'></td> \n";
        echo "</tr> \n";
    }
    echo "<tr> \n";
    echo "<td colspan='9'><input type='submit' value='Tipp eintragen'></td> \n";
    echo "</tr> \n";
    echo "<tr> \n";
    echo "<td colspan='9'><input type='hidden' name='spielerID' value='".$_SESSION['spielerID']."'></td> \n";
    echo "</tr> \n";
    echo "</table> \n";
    echo "</form> \n";
    ?>
    Das ist auch so wie ich das haben will. Allerdings habe ich dabei das Problem, das ich nicht genau weis, wie ich die <input> felder für die Tipps benennen muss, damit ich auch alle Tipps verarbeiten kann. So wie es jetzt ist, kann ich nur ohne Schleife den Ersten Tipp verarbeiten, was ja auch logisch ist, da ja alle <input>'s immer gleich benannt sind. Ich hoffe ihr wisst wie ich das meine. Evtl. könnte man es mit einer for Schleife mach, indem man iwie zählt, wie viele verschiedene spielID's mit Tipps abgegeben wurden. Da hab ich allerdings keinen Ansatz für.

    Hoffe mir kann jemand helfen, damit ich vllt. doch noch pünktlich fertig werde

    Schönen Abend noch
    Christoph

  • #2
    ich errate, dass du das hier erwartest:

    name="tipp[]"

    also ein array

    Kommentar


    • #3
      hmm. Ich habe ja z.b. in Gruppe A 6 Spiele. Wenn man jetzt mehr als 1 spiel tippt, wird nur der erste Tipp mit ID übertragen. Wie kann ich das denn dann mit einem Array machen, das alle übergeben werden? Steh grad iwie aufm Schlauch.

      Kommentar


      • #4
        z.B. gruppea[1] ... gruppea[6]

        Kommentar


        • #5
          kannst du mir das evtl. als beispiel einmal oben in meinen Code einbauen? Ich verstehe nicht wie du das meinst. Sorry

          Kommentar


          • #6
            Nö, ich mach hier sicher nicht deine Hausaufgaben. :P

            Aber eigentlich habe ich da schon ein Beispiel gepostet. Ein wenig Transferleistung solltest du selber leisten können.

            *move* nach Projekthilfe

            Kommentar


            • #7
              du sollst ja auch nicht mein hausaufgaben machen. ich habe nur noch nicht so viel mit arrays gearbeitet und schattenbaum z.b. hilft mir da im moment auch nicht viel.

              Muss ich einfach für den Namen beim input name="tipp[]" schreiben?

              Kommentar


              • #8
                Du hast es nichtmal versucht...

                Kommentar


                • #9
                  doch habe ich. ich habe es jetzt so:

                  PHP-Code:
                  echo "<td><input type='text' name='".$tipp[]."' maxlength='2' style='width:20px;'></td> \n"
                  allerdings kann das so ja auch nicht klappen. Deswegen war meine Frage, was ich da machen muss bzw. wie.

                  Bekomme dabei folgende Fehlermeldung:
                  Fatal error: Cannot use [] for reading in /mnt/web6/20/86/51648986/htdocs/projects/tippspiel/plugins/tippen.plug.php on line 22

                  Kommentar


                  • #10
                    Ähm? was soll bitte $tipp[] für eine Variable sein? Ganz davon abgesehen, dass du sicher nirgends versucht hast, ihr einen Wert zuzuweisen (im PHP-Code), spricht das auch noch gegen jede PHP-Syntax.

                    Aber nochmal zu den Grundlagen. Die Erstellung eines Formulars spielt sich ausschließlich im HTML-Quellcode ab.

                    Und wo wir gerade beim Wiederholen sind, ich wiederhole auch gerne noch mal meinen Vorschlag:
                    name="tipp[]"

                    Kommentar


                    • #11
                      ich hatte versucht mit einer for schleife die id für den tipp hochzuzählen, was aber auch nichr geklappt hat.

                      Kommentar


                      • #12
                        Aha.

                        Kommentar


                        • #13
                          PHP-Code:
                              for ($i=1$i<=6;$i++) {
                              echo 
                          "<td><input type='text' name='tipp[".$i."]' maxlength='2' style='width:20px;'></td> \n";
                              echo 
                          "<td> : </td> \n";
                              echo 
                          "<td><input type='text' name='tipp[".$i."]' maxlength='2' style='width:20px;'></td> \n";

                          so is doch vom ansatz her "richtiger" oder? wobei das natürlich auch noch nicht klappt

                          Kommentar


                          • #14
                            Ja, der Ansatz ist besser.

                            Nur bringt es natürlich nichts, wenn du das Ergebnis der Heimmanschaft mit dem der Gastmannschaft überschreibst!

                            Kommentar


                            • #15
                              ok, dann schon mal danke bis hier her ^^. könnte ich das mit dem überschreiben nicht einfach mit tipp_m1 und tipp_m2 beheben? wie kann ich denn die for schleife so einbauen, das er nur die variable hochzählt und nicht die spallten auch alle 6 mal ausgibt?

                              Kommentar

                              Lädt...
                              X