Wie kann man eine PHP Variable bei Klick auf beispielsweise einen p-Tag mit einem bestimmten Wert füllen?
Auf der ersten Seite sind Rezepte aufgelistet. Die Rezept-Daten wie z.B. die Titel der Rezepte sind in einer MySQL-Datenbank gespeichert. Die Titel lasse ich auf der ersten Seite alle ausgeben. Nun möchte ich, dass bei einem Klick auf den Titel der Nutzer auf eine andere Seite gelangt, auf der das vollständige Rezept steht. Dabei möchte ich aber nicht für jedes Rezept manuell eine Unterseite erstellen, denn dann hätte ich mir das mit der Datenbank schenken können.
Bisher habe ich ein
eingerichtet, bei dem der anzuklickende p-Tag als Submit-Button dient. Nun muss ich noch mittels POST einen Wert, der zum richtigen Rezept führt (z.B. Titel, ID, etc.) an die Seite weiterreichen, die mit dem Submit-Button vom
aufgerufen wird. Allerdings bin ich bisher auf keine Idee gekommen, wie ich eine PHP-Variable bei einem onclick mit einem Wert füllen kann.
Weiß da jemand weiter?
Vielen Dank!
3 Antworten
Erstmal ist PHP nur auf dem Server , das schickt das ganze zum Browser, dort wird es angezeigt . Somit hat PHP nix mit dem Browser zu tun , das PHP ist schon lange beendet und der Browser hat auch keine Verbindung zum server sondern downlaoded quasi die HTML ausgabe am ende des PHP .
Du machst also deine FORM mit POST hast mindestens ein FELD
z.b. ID des rezeptes
<?php
/* datenbank connecten */
$htmlausgabe ="";
if (isset($_POST['rezeptid') /*diese POST variable hat den Wert vom gleichnamigen input feld */) {
/* hole daten aus der datenbank mit der rezeptid */
$dbeintrag = /* wie du ein select machst und den eintrag holst mussu schon selber queryen */
$htmlausgabe .= "<h2>Rezept Nr $dbeintrag[id]</h2>";
$htmlausgabe .= "<h3>$dbeintrag[tietel]</h3>";
$htmlausgabe .= "<p>$dbeintrag[rezept]</p>";
} else {
/* hole daten aus der datenbank */
$datenbankergenisarray = /* wie du die liste aller rezepte holst mussu schon selber queryen */
foreach ( $datenbankergebnisarray as $entry) {
$htmlausgabe .="<h3>$entry[tietel]</h3>";
$htmlausgabe .=<<<POSTER
<form name="rezeptbutton" method="post">
<input name="rezeptid" value="$entry[id]" type="hidden" />
<input name=".submit" value="zum rezept" type='submit' />
</form>
POSTER;
}
echo $htmlausgabe;
?>
Du sendest also eine Neue Anfrage mit der RezeptId und diese wird dann vom PHP verarbeite wenn vorhanden , ohne rezeptid gibts nur die liste .
Man sollte die Titel einfach zu Links machen mit z.b.. Rezept.php?id=5 usw. Und dann die ID mittels GET abfragen.
Hat auch den Vortei dass man einen Link vom Rezept weitergeben kann.
Du lässt doch die Titel bereits auf der Startseite ausgeben? das heißt du hast bereits eine Abfrage mit der du die Daten aus der Datenbank hohlt und die Seite wird dann direkt beim Aufruf erstellt.
mache einfach eine doppelabfrage zieh die ID des Rezeptes und schreibe die z.b. als Link.
Mit onclick würde ich da nicht arbeiten, denn das erfordert aktiviertes Javascript was aber nicht immer gegeben ist.
von daher würde entweder einen richtigen Submit Button also ein Formular Button erstellen oder einen Link
Beim Submit Button übergibst du dann die ID in einem versteckten formularfeld, bei einem Link einfach über den Link selber
<form action="Script.php">
<input type="hidden" name="ID" value="12345">
<input type"submit"...usw
Beim Link gehts dann einfach mit script.php?ID=12345
bei Value= dann nur die ID eintragen lassen und fertig.
im Script selber musst du dann natürlich diese ID abfangen, und dafür sorgen das nur eine ID übergeben werden kann.
Damit erstellst du dann die nächste abfrage mit der das Rezept aus der Datenbank gezogen und angezeigt wird
Die Übersichtsseite, die die Rezepte anzeigt sollte die links zu den Rezepten einfach als Link anzeigen. z.B. abc.de/rezept.php?id=*hier die id*
Die rezept.php sucht dann das Rezept mit der angegebenen ID und zeigt's an.