Formular mit Radiobuttons

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

  • #16
    <form>-Tags und Submit-Button sind dabei?
    dann bin ich auch erstmal ratlos ...
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #17
      Ja,

      formtags etc sind dabei. Habe schon alles nach kleinen Fehlern durchsucht wie $ oder ; vergessen nix gefunden...

      Er wechselt mir auch auf die richtige Seite, wie kann ich mir die Sachen auf der Update-Seite anzeigen lassen? Um zu sehen, ob er die Daten weingstesn richtig bekommt?

      Kommentar


      • #18
        var_dump($_POST);
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #19
          So,

          das zeigt er mir nun an, wenn ich bei jedem Spieler block, pp und pk auf 1 gestellt habe:

          array(4) { ["block"]=> array(18) { [779]=> string(2) "on" [898]=> string(2) "on" [1473]=> string(2) "on" [1476]=> string(2) "on" [1478]=> string(2) "on" [1481]=> string(2) "on" [1482]=> string(2) "on" [1484]=> string(2) "on" [1485]=> string(2) "on" [1489]=> string(2) "on" [1490]=> string(2) "on" [1492]=> string(2) "on" [1493]=> string(2) "on" [1494]=> string(2) "on" [2807]=> string(2) "on" [3638]=> string(2) "on" [3667]=> string(2) "on" [3677]=> string(2) "on" } ["pk"]=> array(18) { [779]=> string(2) "on" [898]=> string(2) "on" [1473]=> string(2) "on" [1476]=> string(2) "on" [1478]=> string(2) "on" [1481]=> string(2) "on" [1482]=> string(2) "on" [1484]=> string(2) "on" [1485]=> string(2) "on" [1489]=> string(2) "on" [1490]=> string(2) "on" [1492]=> string(2) "on" [1493]=> string(2) "on" [1494]=> string(2) "on" [2807]=> string(2) "on" [3638]=> string(2) "on" [3667]=> string(2) "on" [3677]=> string(2) "on" } ["pp"]=> array(18) { [779]=> string(2) "on" [898]=> string(2) "on" [1473]=> string(2) "on" [1476]=> string(2) "on" [1478]=> string(2) "on" [1481]=> string(2) "on" [1482]=> string(2) "on" [1484]=> string(2) "on" [1485]=> string(2) "on" [1489]=> string(2) "on" [1490]=> string(2) "on" [1492]=> string(2) "on" [1493]=> string(2) "on" [1494]=> string(2) "on" [2807]=> string(2) "on" [3638]=> string(2) "on" [3667]=> string(2) "on" [3677]=> string(2) "on" } ["Button"]=> string(10) "Abschicken" }

          Kommentar


          • #20
            wieso 'on'
            das sollten numerische Werte zwischen 1 und 4 sein ...

            Formular aufrufen :: Ansicht -> Quelltext
            wenn bei den radio buttons auch value="on" steht,
            ist das rätselhaft, da in der Funktion radio Zahlen ausgegeben werden sollten;
            wenn nicht, dann sind die Werte in $_POST absolut rätselhaft.

            ooooooohhh ich seh es: die Anführungszeichen beim Feldnamen werden nicht geschlossen:
            <INPUT TYPE="radio" NAME="', $spieler_name, '[', $spieler_id, ']" ',
            ------------------------------------------------------------^
            Die Gänsefüßchen hinter dem ] fehlen

            mea culpa. kleiner Tippfehler. Hab ich auch mal in meinem Original-Posting korrigiert.
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #21
              Hey,

              ein Anfang ist gemacht Er macht jetzt eine Aktualisierung, aber warum er nicht bei allen Spielern das Update durchführt, kannst Du mir nun sicher erklären

              btw, hatte das Originalpost nicht mehr gelesen, wie Du vielleicht bemerkt hast

              Kann ich eigentlich mit checked den Wert schon auf den Block setzen, den der Spieler in der db schon hat? Das muss ich dann wohl in der Funktion machen. Muss das dann checked'$spieler_block' heißen?

              Sorry für meine kleine Nerverei, aber ich lerne hier gerade.

              Kommentar


              • #22
                Sorry für meine kleine Nerverei, aber ich lerne hier gerade.

                Das ist der Sinn dieses Forums

                Kommentar


                • #23
                  Aha, ein weiterer Admin schaltet sich dazu

                  Soviel Aufsehen wollte ich doch gar nicht erregen

                  Kommentar


                  • #24
                    Übrigens,

                    muss foreach nicht in einer geschweiften Klammer stehen, oder ist das in diesem Fall egal?

                    Kommentar


                    • #25
                      Geschweifte Klammern sind nur dazu da, mehrere Befehle zu einem Block zusammen zu fassen:

                      foreach ($array as $index => $inhalt)
                      { // hier geschweifte Klammern
                      befehl1;
                      befehl2;
                      }
                      Kann ich eigentlich mit checked den Wert schon auf den Block setzen, den der Spieler in der db schon hat?
                      Das wird eigentlich durch Übergabe von $x['block'] als Parameter $wert an die Funktion schon erledigt, und zwar genau an dieser Stelle: ($i==$wert ? 'checked ':'')
                      mein Sport: mein Frühstück: meine Arbeit:

                      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                      Kommentar


                      • #26
                        Okay, aber wieso dann doch keine Aktualisierung? Irgendwie klappts leider nicht zu 100%.

                        Kommentar


                        • #27
                          Als Sicherheit füge ich nun nochmal den Code hier ein, damit vielleicht Du noch einmal den Fehler erkennen kannst.

                          Auswahlseite:

                          <?

                          //für die radios machen wir eine Funktion:
                          function radio ($spieler_name, $spieler_id, $wert, $maxwert, $bgcolor)
                          {
                          for ($i=1; $i<=$maxwert; $i++)
                          echo '
                          <TD bgcolor="', $bgcolor, '"><P><font face="Verdana" size="2" color=#000000">
                          <INPUT TYPE="radio" NAME="', $spieler_name, '[', $spieler_id, ']" ',
                          ($i==$wert ? 'checked ':''), 'VALUE="', $i, '"> ', $i, '
                          </font></P></TD>';
                          }





                          // Query an die DB ...

                          $verbindung = mysql_connect("$db_host","$db_user","$db_pass");
                          mysql_select_db("$db_name", $verbindung);

                          $sqlstring = "SELECT *
                          FROM hm_spieler
                          WHERE spieler_team_id='999' AND spieler_pos!='T'
                          ORDER BY spieler_pos, spieler_gesamt_stärke DESC";

                          $q = mysql_query($sqlstring,$verbindung);


                          // ... und dann die Spieler in einer Schleife ausgeben

                          while ($x = mysql_fetch_assoc($q))
                          {
                          $spieler_id = $x['spieler_id'];
                          echo "<TR align=center><TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_pos]</font></P></TD>";
                          echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_name]</font></P></TD>";
                          echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_vorname]</font></P></TD>";
                          echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_gesamt_stärke]</font></P></TD>";
                          echo "<TD bgcolor=#99CCFF><P><font face=Verdana size=2 color=#000000>$x[spieler_alter]</font></P></TD>";
                          radio('block', $spieler_id, $x['block'], 4, '#FFFF00');
                          radio('pk', $spieler_id, $x['pk'], 2, '#3399FF');
                          radio ('pp', $spieler_id, $x['pp'], 2, '#FFFF00');
                          echo '</tr>';

                          }



                          ?>

                          Updateseite:

                          <?

                          var_dump($_POST);

                          $verbindung = @mysql_connect("$db_host","$db_user","$db_pass");

                          mysql_select_db("$db_name", $verbindung);


                          foreach($block as $spieler_id=>$b)

                          $result = mysql_query("update hm_spieler
                          set spieler_block=$b,spieler_block_pk=$pk[$spieler_id], spieler_block_pp=$pp[$spieler_id]
                          where spieler_id=$spieler_id");

                          ?>

                          Kommentar


                          • #28
                            hmm ... wenn der Wert verloren geht, ist die Frage wo. Es gibt dazu vier mögliche Stellen, und mit den folgenden Maßnamen kannst du herausfinden, wo das ist:

                            1. Datensatz mit phpMyAdmin anschauen
                            stimmt der Wert hier nicht, wird er nicht ordentlich geschrieben
                            2. Datensatz in der Schleife mit var_dump($x); oder echo "$x[spieler_id]:$x[block]<br>"; ausgeben
                            stimmt der Wert im MyAdmin, aber hier nicht, wird er falsch ausgelesen
                            3. in den Quelltext gucken
                            Stimmt der Wert bei 1 und 2, aber es steht nirgends checked, dann beiß ich mir ins Knie.
                            Stimmt er auch da:
                            4. nach dem Abschicken nochmal var_dump($_POST['block'])
                            5. ergänze den Befehl mysql_query(...); zu mysql_query(...) or die (mysql_error());
                            Zuletzt geändert von Titus; 23.07.2002, 20:05.
                            mein Sport: mein Frühstück: meine Arbeit:

                            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                            Kommentar


                            • #29
                              So nun die Werte, wenn ich den Code aus Punkt 4 eingefügt habe:

                              array(16) { [1490]=> string(1) "1" [2807]=> string(1) "2" [898]=> string(1) "3" [779]=> string(1) "1" [1482]=> string(1) "2" [1485]=> string(1) "3" [3638]=> string(1) "1" [3677]=> string(1) "2" [1478]=> string(1) "3" [1484]=> string(1) "4" [1473]=> string(1) "1" [1481]=> string(1) "1" [1489]=> string(1) "2" [1494]=> string(1) "2" [3667]=> string(1) "3" [1476]=> string(1) "3" }

                              Also, wenn ich das richtig sehe, dann hat er die Werte, oder? Aber mal eine andere Sache; ich ahbe das Updateskript in einer 2. Datei liegen, ist das vielleicht das Problem.

                              In der ersten Datei liegt das Skript mit der Funktion und in der 2. Datei das Updateskript, dass per formtag in der 1. Datei ausgelöst wird.

                              Kommentar


                              • #30
                                Ich habs!

                                Es muss jeder einzelne Button aktiviert werden Kann man das nicht so lösen, dass man nicht jeden Button aktivieren muss? Bzw. was muss ich in die Funktion eintragen, dass mir beim Aufbau der Seite mit den Radiobuttons bei jedem einzelnen Spieler der Button schon aktiviert ist, wenn der Wert in der db schon vorhanden ist.

                                Kommentar

                                Lädt...
                                X