Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] <tr> je nach DB verlinken

Einklappen

Neue Werbung 2019

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

  • [Erledigt] <tr> je nach DB verlinken

    Hallo liebe Community.

    Ganz einfach beschrieben habe ich folgendes Problem:
    Ich habe eine Datenbank. Aus dieser werden mit Hilfe einer MySQL-Abfrage verschiedene ID's (int) ausgelesen.
    Zu diesen ID's werden dann Daten rausgesucht und in einer Tabelle angegeben werden.
    Jetzt soll man, wenn man auf eine Reihe (<tr>) klickt, weitere Daten zu genau diesem Thema sehen können. Dazu benötige ich eine Weiterleitung via $_GET.
    Ich habe per Google nichts gefunden zum Thema PHP.
    Und mit JS dürfte das meinen Überlegungen zu Folge auch nicht gehen, da ich ja eine variable Anzahl an ID's habe (es geht schon. Ist aber sau umständlich).

    Hat da jemand eine Idee? Oder einen Denkanstoß?

    Mit freundlichen Grüßen,
    Auran

    EDIT: Gefunden habe ich per Google schon etwas. Aber nichts, was auch funktioniert hätte.


  • #2
    hey Auran,

    also ich mache es immer so wenn ich eine tabelle aus einer Datenbank anzeige.
    Dass ich bei der letzten spalte ein link setze und die id per $_GET mit übertrage.

    So z.B. <td><a href="index.php?seite=ansehen&id=<?php echo $dt["id"]; ?>">details</a></td>

    falls du so etwas gemeint hast.

    mfg
    Flava

    Kommentar


    • #3
      Danke für die rasche Antwort.
      Das wäre dann natürlich die Notlösung.
      Ich bräuchte es halt eben für den <tr>-Tag und nicht für den <td> bzw. das, was in dem <td>-Tag drinnen ist.

      Kommentar


      • #4
        Einfach in jeder Zelle (nicht Zeile) den Text entsprechend verlinken.

        Mit jQuery geht's und data-* ginge das aber auch recht fix.
        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.

        Kommentar


        • #5
          Super. Danke. Das ich auf die Idee nicht draufgekommen bin ^^
          Ist allerdings auch nicht das Optimum.

          Das mut jQuery. Funktioniert das dann mit der ganzen Zeile?
          Ist das mit dem hier?
          Code:
          $(document).ready(function(){
              $('table tr').click(function(){
                  window.location = $(this).attr('href');
                  return false;
              });
          });

          Kommentar


          • #6
            Ich habe jetzt etwas rumprobiert und es tritt ein neues Problem auf. Ich hoffe ich kann es trotzdem hier posten:

            Ich habe oben das:
            Code:
            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
                <script>
            
                $(document).ready(function(){
                    $('table tr.forward').click(function(){
                        window.location = $(this).data('href');
                        return false;
                    });
                });
                  
                </script>
            Und unten das:
            PHP-Code:
            <tr class='forward' href='/index.php?mail=".$row->mailid."'
            (Natürlich entsprechend in die Tabelle eingepackt)
            Wenn ich nun auf die Zeile klicke klappt es. (Jippie )
            Aber ich werde trotzdessen an eine Adresse [Zensiert]/undefined weitergeleitet statt [Zensiert]/index.php?...

            Hat jemand eine Idee?

            Kommentar


            • #7
              Wie weitergeleitet? Von wem? Klingt nach einem Problem auf der Zielseite. Liegt da noch ein Link drunter?
              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.

              Kommentar


              • #8
                Schon mit
                PHP-Code:
                window.location = $(this).prop('href'); 
                versucht?
                Zitat von derwunner
                "Ein FISI ist auf gut-deutsch der Netzwerker. Das heißt Du gehst rauß zum Kunden oder auf die Straße und verlegst Leitungen" - derwunner 2015

                Kommentar


                • #9
                  @CrocoBlack: Leider selbes Ergebnis
                  @chorn: Naja. Das Ziel ist ja, dass ich mit einem Klick auf den Kurzeintrag(z.B. ID 3) auf den Langeintrag mit der selben ID (z.B. ID 3) weitergeleitet werde. Also von jQuery.
                  Und ich bin mir nicht sicher, was du mit "Liegt da noch ein Link drunter" meinst.

                  Kommentar


                  • #10
                    Doku lesen:

                    http://api.jquery.com/data/#data-html5
                    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.

                    Kommentar


                    • #11
                      Danke. Soeben nach einigem Überlegen den Fehler gefunden. Das Script war korrekt, aber ich habe eben
                      PHP-Code:
                      <tr class='forward' href='index.php?mail=".$row->mailid."'
                      statt
                      PHP-Code:
                      <tr class='forward' data-href='index.php?mail=".$row->mailid."'
                      angegeben.
                      Danke für die Hilfe.

                      Kommentar


                      • #12
                        Sehr schön. Ich habe das Thema eben wieder geöffnet. In der Zwischenzeit ist einiges passiert: Mir ist Notepad++ abgeschmiert und die Dateien habe ich nicht lokal bearbeitet, sondern temporär aus dem Webspace runtergeladen (das mach ich nicht nochmal ^^). Kurzum: Meine ganze Datei (ein Haufen Arbeit) ist weg. Das war gestern Mittag. Seit dem habe ich mehrere Stunden verstärkt daran gearbeitet und bin fast wieder auf dem Stand, auf dem ich vorher war. Aber es tritt wieder das selbe Problem auf, welches ich über diesem Post gelöst habe. ABER:
                        Code:
                        <script>
                            $(document).ready(function(){
                                $('table.showed_mails tr.forward > td:not(".checkboxes")').click(function(){
                                    window.location = $(this).data("href");
                                    return false;
                                });
                            });
                            </script>
                        Das hatte ich oben drinnen (HEADER).
                        PHP-Code:
                        echo "<tr class='forward' data-href=\"index.php?mail=".$row->mailid."\"><td>"
                        Das hier unten.
                        Ging mal wieder nach "/undefined", wenn ich draufgeklickt habe.
                        Gelöst habe ich das durch folgendes:
                        Code:
                        <script>
                            $(document).ready(function(){
                                $('table.showed_mails tr.forward > td:not(".checkboxes")').click(function(){
                                    window.location = $(".forward").data("href");
                                    return false;
                                });
                            });
                            </script>
                        => Es klaut sich data-href nicht mehr aus dem aktuellen Objekt (das hat nicht funktioniert) sondern aus .forward
                        Jetzt allerdings folgendes Problem:
                        Das Script leitet immer nur auf "index.php?mail=3" weiter.
                        Wenn ich mir den Quelltext anschaue, habe ich folgendes gesehen:
                        Code:
                        <tr class='forward' data-href="index.php?mail=3">[...]</tr>
                        <tr class='forward' data-href="index.php?mail=5">[...]</tr>
                        Also an der MySQL-Abfrage kann es nicht liegen. Es wird ja alles korrekt eingefügt.
                        Also muss es, da der HTML-Code vorher genauso funktioniert hat, am Script liegen.
                        Das einzige Problem dabei: Ich habe keinen Schimmer, warum.
                        Ich saß mehrere Stunden am Rechner und habe mich in dieses Gebiet JS eingelesen (JS bin ich nicht so gut) und habe aber keine Lösung gefunden.
                        chorns Doku von der 1. Seite habe ich mir unter anderem auch komplett durchgelesen (http://api.jquery.com/data/#data-html5) Habe aber nichts gefunden, was weiterhelfen würde.

                        Habt ihr eine Idee?

                        Ich habe das jetzt wieder hier gepostet, da es doch was mit dem Zeug oben drüber zu tun hat. Wenn ich einen neuen Post eröffnen soll, bitte Bescheid geben.

                        Habt ihr eine Idee? Ich blick nach Stunden von Arbeit nicht mehr durch^^ Und weiterprogrammieren kann ich auch nicht, da alles aktuell an dem hängt.

                        LG,
                        Auran

                        Kommentar


                        • #13
                          Schon mal in die Konsole nach Fehler geschaut? (F12)

                          Und du kannst es etwas einfacher notieren, zuminest ohne Anfürhungszeichen escapen:

                          PHP-Code:
                          echo '<tr class="forward" data-href="index.php?mail='.$row->mailid.'"><td>'
                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Also warum ich das so escaped habe? Keine Ahnung ^^

                            In der Konsole steht
                            Die Zeichenkodierung des HTML-Dokuments wurde nicht deklariert. Das Dokument wird in manchen Browser-Konfigurationen mit verstümmeltem Text dargestellt, wenn das Dokument Zeichen außerhalb des US-ASCII-Bereichs enthält. Die Zeichenkodierung der Seite muss im Dokument oder Transferprotokoll deklariert werden.
                            Ich glaube eigentlich nicht, dass es was damit zu tun hat, da es vorher ja auch ohne das funktioniert hat, aber ich mach es einfach mal
                            EDIT: Ich habe die Zeichencodierung deklariert, aber es ändert sich nicht. Hmm.

                            Kommentar

                            Lädt...
                            X