Parameter bei Klick übergeben

  • PHP

Es gibt 59 Antworten in diesem Thema. Der letzte Beitrag () ist von Link275.

    Parameter bei Klick übergeben

    Ich habe folgendes Problem. Ich befüllte eine Tabelle mit Daten aus einer Datenbank.

    PHP-Quellcode

    1. //Ausgabe aller Zeilen mit einer While-Schleife
    2. while($row = $mydb->fetchRow())
    3. {
    4. echo "<tr><td>". $row["fach"] . "</td></tr>";
    5. }


    Nun will ich auf das Klick Event reagieren, also mit onclick=...
    Bei dem Klick Event soll eine neue Abfrage gestartet werden, welche als WHERE-Klausel die Variable row["fach"] bekommt.
    Aber wie kann ich diese nun dynamisch übergeben, das egal auf welches Item ich klicke die dazugehörige Variable bekomme ?

    Zur Veranschaulichung:
    Eine Spalte in der DB sieht wie folgt aus.
    Mathe GK4 05.05.2013
    In eine Tabelle schreibe ich "Mathe"
    Klicke ich nun auf Mathe in der Tabelle soll eine Abfrage mit "WHERE fach = Mathe" gestartet werden und die Ergebnisse in einer Tabelle angezeigt werden.
    @programmer71
    Ich versteh nicht was du mir damit sagen willst.
    BindParam baue ich erst später ein.
    Ich will es nach diesem Prinzip, aber das geht natürlich nicht.

    PHP-Quellcode

    1. echo "<tr><td onclick=". $mydb->query("SELECT * FROM fach WHERE fach =" $row['fach']); . ">". $row["fach"] . "</td></tr>";
    Das wird anders aber nicht gehen. Wenn die Seite einmal fertig und an den Client ausgeliefert ist, kannst du da nicht noch irgendwelche PHP-Sachen ausführen. Das müsstest du per AJAX machen, die ein PHP-Skript aufruft.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Würde nen einfachen Link nehmen, bei dessen onclick du das machst.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Ich verwende meistens diese Funktion für AJAX:

    Quellcode

    1. function sendRequest(url, handler, method)
    2. {
    3. if (method === undefined)
    4. method = 'GET';
    5. var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    6. req.open(method, url, true);
    7. req.onreadystatechange = function()
    8. {
    9. if (req.readyState == 4 && req.status == 200)
    10. handler(req.responseText);
    11. };
    12. req.send();
    13. }


    Benutzung:

    Quellcode

    1. handler = function(responseText) { alert(responseText); }
    2. sendRequest(url, handler)
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Mach dir mal nen Link auf die Seite, der die Funktion zum Nachladen aufruft. Das Output des Skriptes musst du dann per JS in die Tabelle schreiben/eine neue anlegen, whatever du willst.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    PHP == Serverside
    JS == Clientside

    Im OnClick-Event müsstest du dann eine Javascript-Funktion aufrufen, die mittels AJAX eine PHP-Datei nachlädt. In dieser PHP-Datei kannst du dann den Code schreiben, der ausgeführt werden soll. Du kannst dem Script mit POST oder GET Parameter übergeben und die Ausgabe mittels JS auswerten.
    Einfach an die URL dranhängen, also per GET.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Nein. Z.B. so:

    HTML-Quellcode

    1. ...onclick="loadInformation(5);"...


    Quellcode

    1. function loadInformation(x) {
    2. handler = function(responseText) { alert(responseText); }
    3. var url = "information.php?x=" + x;
    4. sendRequest(url, handler)
    5. }


    Die Parameter für die JS-Funktion schreibst du bei der Ausgabe der Originalseite mit rein.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    @Lukas
    Hab es nun so, aber es klappt nicht und mir wird nur " in der Tabelle angezeigt.

    PHP-Quellcode

    1. $mydb->query('SELECT fach FROM plans');
    2. //Ausgabe aller Zeilen mit einer While-Schleife
    3. while($row = $mydb->fetchRow())
    4. {
    5. ?>
    6. <tr><td onclick='loadinformation("<?php $row['fach'] ?> ")'>"<?php $row["fach"] ?> </td></tr>
    7. <?php
    8. }
    Hab nur den letzten Post gelesen. Aber was zur Hölle machst du da?
    PHP = Serverseitig.
    Wenn die Seite beim Client ist, weiß der nicht ob da mal php war und was da mal php war.
    Nur Javascript wird im Browser noch ausgeführt. Das heißt du brauchst:
    • Eine PHP-Datei welche dir von mir aus alle Fächer ausgibt
    • Eine HTML + Javascript

    Das Javascript lädt jetzt einen Teil der Seite neu. Das heißt das Javascript ruft die PHP-Datei auf. Diese gibt auf dem Server alle Fächer aus und gibt dies zurück. So jetzt hast du einen String mit dem was die PHP-Datei ausgegeben hat. Nun musst du nur noch diesen String irgendeinem HTML-Element deiner Seite zuweisen. Das laden läuft somit rein über Ajax.
    Und merk dir: Wenn die Seite mal beim Client ist(also im Browser)!! Dann gibt es KEIN php mehr. Logische Schlussfolgerung -> Du gehst wieder zum Server denn dort gibt es PHP. Und für das brauchst du eben Ajax, da du dann die Seite nicht neu laden musst sondern Ajax nur die Daten lädt und diese Daten kannst du dann per Javascript weiterverarbeiten.

    Ich persönlich finde dafür jQuery sehr angenehm(ja ich weiß viele mögen es nicht - ich mag es und fertig).


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    @thefiloe
    Okay. Ich glaube ich habe es jetzt verstanden. Nur das woran es noch vorher hapert ist, dass ich ja generell erstmal auslesen muss was gedrückt wurde.
    In der Tabelle steht
    1. Mathe 2. Englisch
    Wenn ich jetzt auf "Englisch" klicke soll mein PHP-Skript mit dem Parameter Englisch ausgeführt werden. Und schon das bekomm' ich nicht hin.