Ankündigung

Einklappen
Keine Ankündigung bisher.

Wert aus einer Tabelle per Klick auf einem Link weitergeben

Einklappen

Neue Werbung 2019

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

  • Wert aus einer Tabelle per Klick auf einem Link weitergeben

    PHP-Code:
    echo '<table border=1>';
            echo 
    '<tr>';
                echo 
    '<th>Patienten_ID</th>';
                echo 
    '<th>Vorname</th>';
                echo 
    '<th>Nachname</th>';
                echo 
    '<th>Geburtsdatum</th>';
            echo 
    '</tr>';
            while (
    $fetch mysqli_fetch_array($ergebnis)){
                echo 
    '<tr>';
                    echo 
    '<td>' $fetch['Patienten_ID'] . '</td>';
                    echo 
    '<td>' $fetch['Vorname'] . '</td>';
                    echo 
    "<td> <a href=arzt_patientenverweis.php?>" $fetch['Nachname'] . "</a></td>";
                    echo 
    '<td>' $fetch['Geburtsdatum'] . '</td>';
                echo 
    '</tr>';
            }
    echo 
    '</table>'
    Es besteht eine Tabelle die mit Werten befüllt ist. Jetzt soll die Patienten_ID weitergegeben werden, wenn man auf den Nachnamen des Patienten klickt. Kann mir jemand weiterhelfen, wie sowas funktionieren kann?

  • #2
    Die Lösung war von $fetch auf $row umzustellen.

    Kommentar


    • #3
      Du solltest Folgendes trennen:
      Datstallung, Daten und Logik

      Zudem sind solche Kunstrukte :
      border=1 oder href=arzt_patientenverweis.php

      zwar möglich aber extrem fehleranfällig und nicht HTML-Komform
      schreib lieber so:

      border="1" oder href="arzt_patientenverweis.php"

      oder so

      border='1' oder href='arzt_patientenverweis.php'

      border="1" hat in einer Tabelle eigentlich auch nix verloren. Dafür wird CSS verwendet.

      Die ganzen echos kannst Du ebenso weglassen und mit einem einzigen ersetzen, und zwar dem, wo du deine Tabelle ausgibt.

      statt
      echo '<td>' . $fetch['Patienten_ID'] . '</td>';

      zu schreiben
      kannst du

      echo "<td>{$fetch['Patienten_ID']}</td>";

      schreiben.


      Außerdem kannst du sehr einfach mit einem {{Platzhalter}} in deinem HTML die Namen der Ergebnisspalten definieren und mit einer einzigen Anweisung ersetzen.
      z.b. mit str_replace()



      Hier ein möglicher Ansatz von mir:
      Da ich die SQL nicht erst bauen wollte, hab ich zum testen mal fix ein array aufgebaut und statt der while ein foreach zum Iterieren ( durchlaufen, zählen ) benutz.

      PHP-Code:

      <?php


      /**
       * Simuliertes Ergebnis einer Abfrage
       */
      $ergebnis =
          [
              [ 
      'Patienten_ID' => 'Vorname' => 'Klaus' 'Nachname' => 'Kleber' 'Geburtsdatum' => '20.10.2010' ]
              ,[ 
      'Patienten_ID' => 'Vorname' => 'Rudi' 'Nachname' => 'Rüssel' 'Geburtsdatum' => '12.05.2000' ]
              ,[ 
      'Patienten_ID' => 'Vorname' => 'Gundela' 'Nachname' => 'Giesel' 'Geburtsdatum' => '03.06.1999' ]
              ,[ 
      'Patienten_ID' => 'Vorname' => 'Wolle' 'Nachname' => 'Woh' 'Geburtsdatum' => '05.11.1988' ]
          ];


      /**
       * Tabellengerüst
       */
      $html['table'] = "
          <table>
              <tr>
                  <th>Patienten_ID</th>
                  <th>Vorname</th>
                  <th>Nachname</th>
                  <th>Geburtsdatum</th>
              </tr>

              {{TABLE_ROWS}}

          </table>"
      ;


      /**
       * Dynamische Zeilen mit festen Spalten
       */
      $html'table_rows' ] = null;
      foreach ( 
      $ergebnis AS $row ){

          
      $html'table_row' ] = "
          <tr>
              <td>
      {$row'Patienten_ID' ]}</td>
              <td>
      {$row'Vorname' ]}</td>
              <td>
                  <a href='arzt_patientenverweis.php'>
      {$row'Nachname' ]}</a>
              </td>
              <td>
      {$row'Geburtsdatum' ]}</td>
          </tr>"
      ;

          
      /**
           * Zeilen sammeln
           */
          
      $html'table_rows' ] .= $html'table_row' ];

      }

      /**
       * Zeilen in Tabellengerüst einfügen
       */
      $html['template'] = str_replace"{{TABLE_ROWS}}" $html['table_rows'] , $html['table'] );


      echo 
      $html['template'];
      bitcoin.de <- Meine Freelancerwährung

      Kommentar


      • #4
        Kannst den Wert ja per GET weitergeben

        Beispiel:
        PHP-Code:
        echo "<a href='arzt_patientenverweis.php?Patient=".{$row'Patienten_ID' ]}'.">; "; 
        Abruf:
        PHP-Code:
        echo $_GET['Patient']; 
        Ergebnis ist dann das was per Link weitergegeben wurde...

        Kommentar


        • #5
          Werte aus einer DB sollten nicht einfach so in einer URL verwendet werden. Dafür gibt es spezielle Funktionen, die einem das Kodieren der speziellen Zeichen abnehmen.
          Hier mag es als Nummer gerade noch mal gut gehen, aber besser man gewöhnt es sich gar nicht erst so an.

          Siehe
          http://php.net/manual/en/function.urlencode.php
          http://php.net/manual/en/function.http-build-query.php

          Kommentar

          Lädt...
          X