claus: Radio Button History

Hallo zusammen,

ich verfolge folgendes Ziel:
Ich habe zwei mysql Tabellen, deren Inhalt ich Zeilenweise/Zellenweise miteinander vergleiche. Die Auswahl der jeweils miteinander zu vergleichenden Tabellenzeilen wird mit Radiobuttons getroffen. Die beiden Tabellen sind in eine HTML Form eingebunden. Nach dem Absenden der Form an php wird dort die Auswertung vorgenommen. Ich möchte nun erreichen, dass sich der Browser die zuletzt miteinander verglichenen Tabellenzeilen merkt, indem die zuletzt angewählten Radiobuttons (erneut) gesetzt werden; also eine Art Button History.
Bin für jeden Hinweis dankbar.
Viele Grüße
claus

  1. Hallo Claus,

    Hallo zusammen,

    ich verfolge folgendes Ziel:
    Ich habe zwei mysql Tabellen, deren Inhalt ich Zeilenweise/Zellenweise miteinander vergleiche. Die Auswahl der jeweils miteinander zu vergleichenden Tabellenzeilen wird mit Radiobuttons getroffen. Die beiden Tabellen sind in eine HTML Form eingebunden. Nach dem Absenden der Form an php wird dort die Auswertung vorgenommen. Ich möchte nun erreichen, dass sich der Browser die zuletzt miteinander verglichenen Tabellenzeilen merkt, indem die zuletzt angewählten Radiobuttons (erneut) gesetzt werden; also eine Art Button History.
    Bin für jeden Hinweis dankbar.
    Viele Grüße
    claus

    Wenn ich dich richtig verstanden habe, möchtest du bei der automatisch generierten Seite den Radiobutton vorauswählen, dessen zugeordnete Tabellenzellen verglichen wurden. Einen Radiobutton kannst du so vorselektieren:

    <input type="radio" name="buttonname" value="buttonwert" checked>

    bzw. für XHTML:

    <input type="radio" name="buttonname" value="buttonwert" checked="checked" />

    Du musst also in dem PHP-Script nur prüfen, welcher Radiobutton ausgewählt wurde und bei diesem Radiobutton ein checked-Attribut ausgeben.

    Viel Erfolg,
    Robert

    1. Hallo Claus,

      Wenn ich dich richtig verstanden habe, möchtest du bei der automatisch generierten Seite den Radiobutton vorauswählen, dessen zugeordnete Tabellenzellen verglichen wurden. Einen Radiobutton kannst du so vorselektieren:

      <input type="radio" name="buttonname" value="buttonwert" checked>

      bzw. für XHTML:

      <input type="radio" name="buttonname" value="buttonwert" checked="checked" />

      Du musst also in dem PHP-Script nur prüfen, welcher Radiobutton ausgewählt wurde und bei diesem Radiobutton ein checked-Attribut ausgeben.

      Viel Erfolg,
      Robert

      Hallo Robert
      Ich übergebe ja dem php Script die ID der Zeilen, die verglichen werden sollen, vielleicht kann ich ja anhand dieser ID den zuletzt aktivierten Radiobutton erneut setzen!?
      Danke für Deine Antwort.
      Gruß
      Claus

      1. Hallo Claus,

        Ich übergebe ja dem php Script die ID der Zeilen, die verglichen werden sollen, vielleicht kann ich ja anhand dieser ID den zuletzt aktivierten Radiobutton erneut setzen!?

        Ich verstehe noch nicht ganz das Problem: Das PHP-Script "weiß" die ID der Zeilen, die verglichen werden sollen. Damit weiß es auch die ID des Radiobuttons, der vorselektiert sein soll. Anschließend gibt das Script eine Reihe von Radiobuttons mit dazugehörigem Inhalt aus. Du musst also doch nur jedes Mal, wenn das Script einen Radiobutton-Code ausgibt (wahrscheinlich ist das sowieso in einer Schleife) überprüfen, ob der Wert, den das Script gleich für das value-Attribut ausgeben wird, dem Wert entspricht, der dem Script als ID übergeben wurde. Und wenn das der Fall ist, wird zusätzlich ein checked-Attribut ausgegeben.

        Oder hab ich da etwas falsch verstanden? Vielleicht erklärst du's noch mal mit anderen Worten.

        Robert

        1. Hallo Robert,

          Ich verstehe noch nicht ganz das Problem: Das PHP-Script "weiß" die ID der Zeilen, die verglichen werden sollen. Damit weiß es auch die ID des Radiobuttons, der vorselektiert sein soll. Anschließend gibt das Script eine Reihe von Radiobuttons mit dazugehörigem Inhalt aus. Du musst also doch nur jedes Mal, wenn das Script einen Radiobutton-Code ausgibt (wahrscheinlich ist das sowieso in einer Schleife) überprüfen, ob der Wert, den das Script gleich für das value-Attribut ausgeben wird, dem Wert entspricht, der dem Script als ID übergeben wurde. Und wenn das der Fall ist, wird zusätzlich ein checked-Attribut ausgegeben.

          Oder hab ich da etwas falsch verstanden? Vielleicht erklärst du's noch mal mit anderen Worten.

          Im wesentlichen hast Du mein Anliegen schon richtig verstanden.
          Ich poste Dir mal die Stellen an dem ich hänge.

          <form name="tabellen" method="post" action="<? echo $PHP_SELF ?>"

          <table>
          <td class="oben">
          <table border="1" cellpadding="1">
          <caption>Werte</caption>
          <tr>
          <th bgcolor=#C0C0C0 bordercolor=#FF0078><b>wert1</b></th>
          <th bgcolor=#C0C0C0 bordercolor=#FF0078><b>wert2</b></th>
          <th bgcolor=#C0C0C0 bordercolor=#FF0078><b>wert3</b></th>
          <th bgcolor=#C0C0C0 bordercolor=#FF0078><b>wert4</b></th>
          <th bgcolor=#C0C0C0 bordercolor=#FF0078><b><img src = "bilder/wastebasket1.gif" alt="Zeile loeschen"></b></th>
          <th bgcolor=#00B0B0 bordercolor=#FF0078><b><img src = "bilder/symbol4.gif" alt="auswaehlen"></b></th>
          <!--<td> </td>-->

          </tr>
          <?php while ($daten = mysql_fetch_array($result)) { ?>
          <tr>
          <td height="15"><?php echo $daten["wert1"]; ?></td>
          <td height="15"><?php echo $daten["wert2"]; ?></td>
          <td height="15"><?php echo $daten["wert3"]; ?></td>
          <td height="15"><?php echo $daten["wert4"]; ?></td>
          <td height="15"><?php echo $daten["wert5"]; ?></td>
          <td height="15"><?php echo $daten["wert6"]; ?></td>
          <td height="15"><a href="<? echo ''.$PHP_SELF.'?clear='.$daten["id"].'' ?>"><img src = "bilder/wastebasket1.gif" alt="Zeile loeschen" border=0></></a></td>
          <td><input type="radio" name="vergleichen" value="<?php echo $auswerten=$daten["id"] ?>"checked><br>

          </td>
          </tr>
          <?php } ?>
          </table>
          </td>

          <br>
          <input type="submit" name="submit" value="Auswerten!">

          Zunächst werden Werte aus den beiden DB-Tabellen ausgelesen und mittels HTML dargestellt; beide Tabellen haben in der letzten Spalte eine Reihe Radiobuttons. Der Anwender klickt nun auf den Radiobutton einer Zeile in beiden Tabelle. Anschließend klickt er auf den "AUSWERTE" Button (das ganze ist in eine HTML-Form eingebunden mir Action  action="<? echo $PHP_SELF ?>"), um die Werte der beiden Tabellenzellen miteinander zu vergleichen. Das Ergebnis der Auswertung wird dargestellt und anschließend werden erneut die beiden Tabellen ausgelesen und dargestellt, d.h. der Zyklus kann erneut durchgeführt werden. Jedoch hätte ich geren, dass die Radio Buttons der zuletzt miteinander verglichenen Zeilen bereits vorselektiert sind, damit der Anwender sieht welche Zeilen er bereits miteinender verglichen hat.
          Mir ist nicht klar, wie ich Deinen Vorschlage konkret umsetzen kann.

          Dank und Gruß
          Claus

          1. Hallo Claus,

            Mir ist nicht klar, wie ich Deinen Vorschlage konkret umsetzen kann.

            Ja, jetzt sind wir an der Stelle angelangt, wo ich zugeben muss, dass ich kein PHP kann. ;-)
            Ich habe das ganze bisher nur als HTML-Problem gesehen, nämlich wie man Radiobuttons vorselektieren kann. Dass das ganze dann irgendwie serverseitig umgesetzt werden kann, erschien mir klar, weil ich das von Perl so gewohnt bin.

            Jedenfalls brauchst du in dieser Zeile eine Art if-Abfrage:

            <input type="radio" name="vergleichen" value="<?php echo $auswerten=$daten["id"] ?>" checked>
                                                                                                ^
                                                                 hier muss übrigens ein Leerzeichen hin

            in der Art: wenn der Wert, der hier für das value-Attribut geschrieben wurde, gleich dem Wert ist, der dem Script als "vergleichen" übergeben wurde, dann schreibe " checked".

            Mehr kann ich dir jetzt leider aber nicht mehr sagen. Vielleicht ist hier noch ein PHP-Spezialist?

            Robert

            1. Servus Robert,

              Mehr kann ich dir jetzt leider aber nicht mehr sagen. Vielleicht ist hier noch ein PHP-Spezialist?

              Deine Anmerkungen haben mir bereits geholfen,

              Also, ich Danke Dir für Deine Mühe

              claus