Ankündigung

Einklappen
Keine Ankündigung bisher.

POST oder GET um Var auf die nächste Seite zu übergeben

Einklappen

Neue Werbung 2019

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

  • POST oder GET um Var auf die nächste Seite zu übergeben

    Hallo,
    ich möchte das Ergebnis einer Suchabfrage per Link auf die nächste Seite.php übergeben.
    Ich schaffe es aber nicht, die Variable mit in den Link einzubauen.
    Es ist bestimmt ganz einfach, aber ich habe schon gefühlt alle Kombinationen durch, um die Var zu übergeben, damit ich mit der Variablen id auf der nächsten Seite weiter arbeiten kann.
    Oder mein ganzer Ansatz ist falsch.
    Ihr seht bestimmt, wo der Fehler ist:
    PHP-Code:
      <?php  require 'inc/db.php';    if(isset($_GET['id']))  {  $id $_GET['id'];  }  else  {  die("Bitte eine ?id übergeben");  }  echo "User mit der ID $id: <br />";  echo "<br />";    $statement $pdo->prepare("SELECT * FROM users WHERE id = ?");  $statement->execute(array($id));  echo "<table>";  echo "<tr>";  echo "<td>id</td>";  echo "<td>Vorname</td>";  echo "<td>Nachname</td>";  echo "<td>E-Mail</td>";  echo "</tr>";  while($row $statement->fetch())  {  echo "<tr>";     echo "<td>";  echo '<a href="oeffnen.php", $id>' /* <-- GET oder POST */ .$row['id'].  '</a>';  echo "</td>";    echo "<td>";  echo $row['vorname'];  echo "</td>";     echo "<td>";  echo $row['nachname'];  echo "</td>";     echo "<td>";  echo $row['email'];  echo "</td>";    echo "</tr>";    }  echo "</table>";   echo "<br />";  echo $id;  ?>
    VG, T.

  • #2
    Hä, was soll das denn sein

    PHP-Code:
    '<a href="oeffnen.php", $id>' 
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Zitat von chorn Beitrag anzeigen
      Hä, was soll das denn sein

      PHP-Code:
      '<a href="oeffnen.php", $id>' 
      Das ist die Stelle, wo ich hänge ...

      Kommentar


      • #4
        moin wilkommen im forum!
        weil du neu bist editiere ich dein code mal um:

        PHP-Code:
        <?php  
        require 'inc/db.php';    
        if(isset(
        $_GET['id']))  {  
         
        $id $_GET['id'];  
        }  
        else  {  
         die(
        "Bitte eine ?id übergeben");  
        }  
        echo 
        "User mit der ID $id: <br />";  
        echo 
        "<br />";    

        $statement $pdo->prepare("SELECT * FROM users WHERE id = ?");  
        $statement->execute(array($id));  

        echo 
        "<table>";  
        echo 
        "<tr>";  
        echo 
        "<td>id</td>";  
        echo 
        "<td>Vorname</td>";  
        echo 
        "<td>Nachname</td>";  
        echo 
        "<td>E-Mail</td>";  
        echo 
        "</tr>";  

        while(
        $row $statement->fetch())  {  
         echo 
        "<tr>";    
         echo 
        "<td>";

        /* <-- GET oder POST */
         
        echo '<a href="oeffnen.php", $id>' .$row['id'].  '</a>';
         echo 
        "</td>";    

         echo 
        "<td>";  
         echo 
        $row['vorname'];  
         echo 
        "</td>";

         echo 
        "<td>";  
         echo 
        $row['nachname'];  
         echo 
        "</td>";    

         echo 
        "<td>";  
         echo 
        $row['email'];  
         echo 
        "</td>";    

         echo 
        "</tr>";    }  
         echo 
        "</table>";  
         echo 
        "<br />";  
         echo 
        $id;  

        ?>


        sieht doch freundlicher aus )

        und hier mein tip:
        https://php-de.github.io/#debugging

        Kommentar


        • #5
          Danke für das Umbrechen.

          Kommentar


          • #6
            Was soll denn in oeffnen.php passieren?
            Das Ergebnis aus der id siehst du ja schon und ist nur ein Datensatz aufgrund der id.

            Schau dir auch mal das EVA Prinzip an und schau ob du die echos da weg bekommst.

            SELECT * ist auch schlecht, führe beim SELECT immer alle Spalten auf, die du auch ausgeben willst.

            Wenn du Daten abhlen willst dann GET sonst POST, hier würde ich also GET nehmen.
            Wie man URLs so vorbereitet, dass sie Parameter dynamisch mit dranhängen erfährst du unter https://www.php.net/manual/de/functi...uild-query.php

            Kommentar


            • #7
              Zitat von TribbleX Beitrag anzeigen

              Das ist die Stelle, wo ich hänge ...
              Aber du machst das doch direkt danach richtig, in der Zelle, in der selben Zeile. Warum machst du das bei der URL nicht genau so?
              [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

              Kommentar


              • #8
                Hallo,
                ich habe es es jetzt so probiert:
                PHP-Code:
                  echo '<a href="oeffnen.php"'.$row['id']. '>'.$row['id'].'</a>'
                Das läuft ohne Fehlermeldung durch.

                Aber in oeffnen.php bekomme ich die Fehlermeldung, dass die Variable id unbekannt ist.

                PHP-Code:
                 $id $_GET['id'];    
                echo 
                $id
                VG, T.

                Kommentar


                • #9
                  PHP-Code:
                  <a href="oeffnen.php?<?= htmlspecialchars(http_build_query(['id' => $row['id']), ENT_COMPAT'UTF-8'?>">
                      <?= htmlspecialchars($row['id'], ENT_COMPAT'UTF-8'?>
                  </a>

                  Kommentar


                  • #10
                    Es hilft wenn du dir vorher mal Gedanken darüber machst wie eine URL überhaupt aussehen soll

                    Code:
                    '<a href="oeffnen.php?id={$ID}">
                    Dann kannst du das hat auch direkt mit sprintf und htmlspecialchars verwenden, oder du benutzt halt http_build_query wie hellbringer das vorgeschlagen hat.
                    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

                    Kommentar


                    • #11
                      Guten Morgen,

                      das Funktioniert alles nicht, so komplizierte Lösungskonstrukte habe ich auch noch nicht gesehen und daraus schliesse ich, dass mein Ansatz falsch und das ganze Problem einfacher zu lösen ist.

                      Mein Ziel:
                      Nehmen wir an, ich suche in der DB nach Vornamen. Mit allen, die Max heissen, wollte ich mit einem Klick auf den Link eine neue Suche nach den Mustermanns starten. Alle Mustermanns sollten mit einem weiteren Klick auf den Link z.B. nach Städten gefiltert werden können.

                      VG, T.

                      Kommentar


                      • #12
                        Zitat von TribbleX Beitrag anzeigen
                        Mein Ziel:
                        Nehmen wir an, ich suche in der DB nach Vornamen. Mit allen, die Max heissen, wollte ich mit einem Klick auf den Link eine neue Suche nach den Mustermanns starten. Alle Mustermanns sollten mit einem weiteren Klick auf den Link z.B. nach Städten gefiltert werden können.
                        hört sich machbar an, ohne js erstmal nehme ich an.

                        daraus bauen sich GET urls wie:

                        Code:
                        example.com/max/mustermann/musterhausen
                        
                        example.com/?name=max&lastname=mustermann&city=musterhausen
                        woran scheitert es nun genau, doch nicht an der url ?

                        Kommentar

                        Lädt...
                        X