DropDown Auswahl öffnen
Maike
- php
Nabend Zusammen,
ich habe ein DropDown mit vielen Namen-Ausgaben jedoch möchte ich diese öffnen wenn ich auf meinen Button Klicke. Jedoch weiß ich nicht in wie weit man dort etwas programmieren muss. Meine Variante die ich habe funktioniert nicht
<form method="post" enctype="multipart/form-data" action="update?id=" onSubmit="<? echo $datensatz['id'];?>;"><ul class="mainForm" id="mainForm_1">
<table width="525" border="1">
<tr>
<td><?PHP
include("../con_connect/config.inc.php");
include("../con_connect/connect.inc.php");
echo "<select size="1" name="schriftfarbe_z1_front" class="eingabetext" onclick="",$datensatz['id'],"">";
$ergebnis = mysql_query("SELECT nName,vName,id FROM $db_table");
while ($datensatz = mysql_fetch_array($ergebnis))
{
echo "<option class="drop" value="" . $datensatz['nName'] . ",". $datensatz['vName']."">";
echo $datensatz['nName'], ", ", $datensatz['vName'], ", ;", $datensatz['event'];
echo "</option>\n";
}
echo "</select>\n";
?></td>
<td><a href="upedit?id="<? $row["id"] ?>""><input id="<? $_GET["event"] ?>" class="drop" type="submit" value="Edit" /></a>
<input id="deleteID" class="mainForm" type="submit" value="Löschen"/></td>
</tr>
</table>
Danke
Maike
Hallo Maike,
ich habe noch nicht ganz verstanden, was du meinst: Möchtest du einen Namen aus der Liste auswählen und dann den ausgewählten "Datensatz" anzeigen? Aus deinem Quellcode schliesse ich mal, dass zu jedem Namen ein Datensatz gehört ...
<form method="post" enctype="multipart/form-data" action="update?id=" onSubmit="<? echo $datensatz['id'];?>;"><ul class="mainForm" id="mainForm_1">
mit dem Attribut "action" bestimmst du, welche URL beim absenden des Formulares aufgerufen werden soll. Hier steht dann meist die Adresse eines PHP-Scriptes, dem man über den sog. Querystring noch Parameter mitgeben kann. zum Beispiel so:
<form method="post" enctype="multipart/form-data" action="update.php?id=7">
Das würde bedeuten, dass beim Abschicken des Formulares (Drücken eines Submit Buttons) das Script update.php ausgeführt würde (falls dieses Script existier) und als Parameter id=7 mitbekommen würde. Der Parameter kann über $_GET verarbeitet werden. Beispiel:
<?php
echo $_GET['id']; //Ausgabe wäre in diesem Fall 7
?>
Hinter dem onSubmit sollte üblicherwese Javascript Code stehen, ich glaube aber nicht, dass du diesen eventhandler - im Moment - benötigst.
<table width="525" border="1">
<tr>
<td><?PHP
du solltest dich für eine Schreibweise entscheiden: hier benutzt du <?PHP...?> um deine PHP-Script Befehle einzubetten. An anderer Stelle benutzt du dafür <?...?>. Die zweite Variante funktioniert nur, wenn in der Konfigurationsdatei short open tags aktiviert sind. Ich persönlich würde die erste Variante bevorzugen, auch wenn es etwas mehr Tipparbeit ist...
include("../con_connect/config.inc.php");
include("../con_connect/connect.inc.php");echo "<select size="1" name="schriftfarbe_z1_front" class="eingabetext" onclick="",$datensatz['id'],"">";
$ergebnis = mysql_query("SELECT nName,vName,id FROM $db_table");
while ($datensatz = mysql_fetch_array($ergebnis))
{
echo "<option class="drop" value="" . $datensatz['nName'] . ",". $datensatz['vName']."">";
echo $datensatz['nName'], ", ", $datensatz['vName'], ", ;", $datensatz['event'];echo "</option>\n";
}
echo "</select>\n";
wenn ich HTML Code ausgebe, verwende ich meistens einfache Anführungszeichen, weil ich dann die doppelten Anführungszeichen innerhalb des Strings nicht zu maskieren brauche. Außerdem ist mir aufgefallen, dass du einmal den Punkt (.) zur Stringverkettung nutzt, ein anderes mal das Komma (,) um mehrere Argumente an echo weiterzugeben. Ich muss gestehen, dass ich sogar erst kurz nachachauen mußte, ob sowas bei echo funktioniert ;-) Also: ich würde es so schreiben:
echo '<option class="drop" value="' . $datensatz['nName'] . ','. $datensatz['vName'].'">';
echo $datensatz['nName'] . ', ' . $datensatz['vName'] . ', ;' . $datensatz['event'];
echo "</option>\n";
}
echo "</select>\n";
Bei den letzten beiden Ausgaben bin ich etwas inkonsequent, aber bei einfachen Anführungszeichen werden Steuerzeichen wie \n nicht umgesetzt, daher ist es hier angebracht, doppelte zu benutzen. Die Steuerzeichen sind zwar nur "nötig", um den entstandenen Quellcode nachher besser lesen zu können, aber prinzipiell finde ich das schon sehr lobenswert. Andere werden dir vielleicht raten, die \n ganz wegzulassen, auch das ist Geschmackssache
Liebe Grüße mbr
[latex]Mae govannen![/latex]
Bei den letzten beiden Ausgaben bin ich etwas inkonsequent, aber bei einfachen Anführungszeichen werden Steuerzeichen wie \n nicht umgesetzt, daher ist es hier angebracht, doppelte zu benutzen. Die Steuerzeichen sind zwar nur "nötig", um den entstandenen Quellcode nachher besser lesen zu können, aber prinzipiell finde ich das schon sehr lobenswert. Andere werden dir vielleicht raten, die \n ganz wegzulassen, auch das ist Geschmackssache
Ich habe mir angewöhnt, immer folgendes zu schreiben:
/* Am Anfang der (Haupt-)Datei */
define("NL", "\n");
/* irgendwo */
echo '<element>inhalt</element>'.NL;
Cü,
Kai