Per Checkbox update bestimmen

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

  • Per Checkbox update bestimmen

    Hi,

    ich habe ein Script was ich erweitern möchte, nur fehlt mir momentan der Gedankenblitz. Also folgendes. Es geht um einen Spielplan. Dort stehen z.B 5 Spiele. 2 sollen verschoben werden.

    Das Formular beinhaltet:

    1. Das Datum für den Spieltag
    2. Jeweils eine ID für jede Spielpaarung
    3. Dropdownfelder mit den jeweiligen Teams

    Nun dachte ich beim Ändern einfach eine checkbox hinter die jeweilige Spielpaarung zu setzen und wenn diese ausgewählt wird dieser Datensatz aktualisiert. Sprich, ich wähle ein neues Datum, aktiviere die beiden checkboxen bei den 2 Spielen die ich ändern möchte und fertig.

    Im Script wollte ich dann mit if ($change[$counter] == "1") dann update. Das Blöde ist nur das eine checkbox ja nur übertragen wird, wenn sie ausgewählt wurde.

    Die checkbox im Script:
    PHP-Code:
    <input type="checkbox" name="change[]" value="1" /> 
    Wenn ich jetzt jedoch durch jede Paarung durchlaufe und dann gleichzeitig das Array für die Checkbox muss ich nun natürlich feststellen, das die Bindung zwischen beiden nicht stimmt. Also bei 5 Paarungen laufe ich 5 mal durch die Schleife. Das Array $change ist aber kleiner bei nur 2 ausgewählten. Wie bekomme ich die Bindung zwischen beiden?

    Ich möchte also jeweils schauen ob Checkbox für diese Paarung aktiv ist, dann update, sonst nicht. Ich sitze im moment echt auf der Leitung. Hat jemand einen kleinen Tip, wie ich das lösen kann?

    Vielen Dank im Voraus.

    Gruß Luka

  • #2
    Hi,

    gib den Checkboxen die jeweilige ID der Spielpaarung als Index:

    PHP-Code:
    echo '<input type="checkbox" name="change[' $id ']" value="1" />'
    Dann kannst Du das Checkbox-Array durchlaufen:

    PHP-Code:
    foreach($_POST['change'] as $key => $value) {
       
    // Ändere Datensatz mit der ID $key

    LG

    Kommentar


    • #3
      Hi kuddeldaddeldu,

      vielen, vielen Dank, der Part funzt. Nun bin ich leider in ein neues Problem gelaufen. Ich denke das ich nun noch einen Fehler in der Benennung meiner Dropdownfelder habe.

      Ich habe die Dropdownfelder so aufgebaut:

      PHP-Code:
      echo '<select name="HomeTeamMatch['.$count.']">';
                  
      for (
      $CounterTeams=0;$CounterTeams<
      $_SESSION['AmountDropDowns'];$CounterTeams++)
      {
          echo 
      '<option value="'.$TeamID[$FixtureListFixtureID[$count]].'" ';
                      
          if (
      $TeamID[$CounterTeams] == $FixtureListTeamIDHome[$count])
         {
             echo 
      'selected';
         }
         echo 
      '>'.$TeamName[$CounterTeams].'</option>';
      }
      echo 
      '</select>'
      Dies ist also für die Heimmannschaft. Dann kommt die Gastmannschaft

      echo '<select name="GuestTeamMatch['.$count.']">';

      Dann wird $count hochgezählt und die nächste Reihe kommt. Nun schaffe ich es also zu sagen update mir nur den Datensatz wo die checkbox aktiv ist, aber wie bekomme ich die jeweiligen Team ID`s. Beim Abschicken des Formulars habe ich ja ein Array mit allen Werten auch die, die nicht per Checkbox ausgewählt sind. Wenn ich nun also mein $change Array durchlaufe bekomme ich leider die falschen TeamID's da ich mich ja an anderer Position des Arrays befinde.

      Hoffe mein Problem ist verständlich und Du oder Ihr habt einen Tip. Irgendwie habe ich mich da verannt und sehe den Wald nicht mehr. Vielen Dank im Voraus.

      Gruss

      Kommentar


      • #4
        Hi,

        ich weiß nicht, ob ich Dich richtig verstanden habe und wie bei Dir $count aussieht. Ich würde die Dropdowns ebenfalls mit einem Index versehen, der die ID der Spielpaarung enthält:
        PHP-Code:
        echo '<select name="HomeTeamMatch[Heim'.$id.']">';
        echo 
        '<select name="GuestTeamMatch[Gast'.$id.']">'
        LG

        Kommentar


        • #5
          Hi,

          also $count war einfach nur ein normaler counter, um das Array hochzuzählen. Denn 1 Spiel besteht ja aus 2 Select Feldern (Heim und Gast Team), 1 Spieltag aus mehreren Spielen.

          Man sieht nun also das Datum, das man verändern kann und dann einfach per checkbox auswählt, welche Spiele also ein neues Datum bekommen.

          Also:

          Spiel 1

          <select name="HomeTeamMatch['.$count.']"> ($count ist 0)
          <option value="TeamID...">Hier die Teamnamen für die Heimmannschaft

          <select name="GuestTeamMatch['.$count.']"> ($count ist 0)
          Hier die Teamnamen für die Heimmannschaft

          checkbox zum Auswählen ob dieses Spiel ein neues Datum bekommt

          $count hochzählen ($count ist 1)

          Spiel 2

          <select name="HomeTeamMatch['.$count.']"> ($count ist 1
          <option value="TeamID...">Hier die Teamnamen für die Gastmannschaft

          <select name="GuestTeamMatch['.$count.']"> ($count ist 1)
          Hier die Teamnamen für die Gastmannschaft

          checkbox zum Auswählen ob dieses Spiel ein neues Datum bekommt

          usw.

          Die checkbox hat nun die SpielID, dann kann ich mit Foreach durchlaufen für jede ausgewählte Checkbox mach ein Update. Die option Fields haben die ID des jeweiligen Teams, aber wie gesagt es werden ja alle Option Fields für alle Spiele per Post gesendet, wie bekomme ich nun also die Verbindung, gebe nur die TeamID's, wo die checkbox ausgewählt wurde.

          Ich hoffe es ist verständlich. Vielen Dank für die Hilfe.

          Kommentar


          • #6
            Hi,

            dann hatte ich Dich richtig verstanden. Benenne halt Deine Dropdowns um, wie ich Dir schon geschrieben habe, dann kannst Du für jede übertragene Checkbox die beiden entsprechenden Einträge der Dropdowns ansprechen.

            LG

            Kommentar

            Lädt...
            X