Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Problem mit isset()

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Problem mit isset()

    Hallo zusammen!

    Ich schein momentan etwas auf der Leitung zu stehen, ich finde einfach keine Lösung für dieses eigentlich "simple" Problem...

    Ich hoffe jemand kann mir da weiterhelfen!

    Ich hab ein Script, in dem werden alle Datensätze einr MySQL-Datenbank angezeigt.
    Nun sind das aber über 2000 Einträge und im Normalfall will man immer nur einen Bruchteil davon sehen (oder gar nur einen).
    Deshalb möchte ich ein paar Filterfunktionen einbauen.

    Ich hab mal mit den Buchstaben angefangen:
    PHP-Code:

    <form name="suchformular" action="start.php?suche=true" method="post" target="_self" >
        <table border="1" align="center">
            <tr>
            <?
                for ($x = 65; $x <= 90; $x++)
                {
                $button = chr($x);
                echo "<td><button name='$button' value='$button' onclick='submit()'>$button</button></td>";
                }
            ?>
                <td><button name="alle" value="alle" onclick="submit()">alle</button></td>
            </tr>
        </table>
    </form>
    --> Buttons von A - Z + Button "alle"

    Nun überprüfe ich welcher Button gedrückt wurde:
    PHP-Code:
    <?
    for ($x = 65; $x <= 90; $x++)
    {
        $button = chr($x);
        if (isset($_POST[$button]))
        $option = $button;
        break;
    }
    ?>
    --> $option wird dann als Parameter in eine Funktion übergeben
    --> $option = "R" --> alle Datensätze die mit "R" beginnen

    Das Problem ist aber, dass $option IMMER "A" ist!
    Ich hab mir das mal mit print_r($_POST) angesehen, und die Ursache gefunden:
    Sobald man auf irgendeinen Button klickt, existieren IMMER alle Werte (A-Z). --> also wird immer bei A schon abgebrochen, auch wenn man NICHT A gedrückt hat...

    Ich hab irgendwo in meinem Script also einen Denkfehler, auf den ich aber einfach nicht drauf komme...

    Weiß jemand wo der Fehler liegt?

    Vielen Dank im Vorraus für jede Antwort!

  • #2
    Poste mal bitte dein ganzes Script mit functionen etc, blick grad nicht ganz durch deine Denkweise

    Kommentar


    • #3
      Warum nennst Du denn die Buttons jeweils wie den Wert? Ein Name reicht doch.
      Bei input/submit wird immer nur der Wert des "benutzten" Elements übermittelt.
      PHP-Code:
      <html>
          <body>
      <?php
      if (isset($_POST['filterByFirstChr'])) {
          echo 
      '<h2>Filter: 'htmlentities($_POST['filterByFirstChr']), '</h2>';
      }
      ?>
              <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
      <?php
      foreach(range('A''Z') as $c) {
          echo 
      '<input type="submit" name="filterByFirstChr" value="'$c'" />';
      }
      ?>
              </form>
          </body>
      </html>

      Kommentar


      • #4
        Vielen Dank für die Hilfe!

        Jetzt funktioniert das Suchen!

        Danke!

        Kommentar

        Lädt...
        X