mit Selectfeld zwei Werte gleichzeitig aus DB abrufen
inspiron
- php
0 Der Martin0 inspiron0 ChrisB0 Der Martin0 inspiron
0 ChrisB
Hallo,
ich bräuchte bitte mal Hilfe für folgendes Problem.
Ein Selectfeld wird aus einer DB-Tabelle mit den Werten "sendung" gefüllt. Soweit alles i.O.
Nun möchte ich den dazu passenden Wert "senderlogo" in einem $Post_senderlogo haben, soll aber nicht im Selectfeld sichtbar sein.
Für ein Lösungsweg wäre ich dankbar!
Gruß
Tabelle "dropdown_sendung"
--------------------------
id |sendung |senderlogo|
--------------------------
1 |Sendung_A|logo_a.png|
2 |Sendung_B|logo_b.png|
3 |Sendung_C|logo_c.png|
. |...
. |...
<select name="sendung" id="sendung" >
<optgroup label="Sendung">
<?php
$sql = "SELECT sendung, senderlogo FROM dropdown_sendung ";
$result = mysql_query($sql);
// für jeden Eintrag ein Option-Tag erstellen
while ($arrsendung = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($arrsendung as $zeile) {
$sel = isselected($zeile, $_POST['sendung']);
if($arrsendung['sendung'] == "*") {
echo '<optgroup label="*">';
} else {
echo '<option value="'.$zeile.'"'.$sel .'>'.$zeile.'</option>';
}
}
}
?>
</optgroup>
</select>
Hi,
ich bräuchte bitte mal Hilfe für folgendes Problem.
Ein Selectfeld wird aus einer DB-Tabelle mit den Werten "sendung" gefüllt. Soweit alles i.O.
bis hierher kann ich auch noch folgen.
Nun möchte ich den dazu passenden Wert "senderlogo" in einem $Post_senderlogo haben, soll aber nicht im Selectfeld sichtbar sein.
An dieser Stelle steige ich aus.
Wie jetzt, du willst noch ein Logo anzeigen, das soll aber nicht sichtbar sein? In einem option-Element kannst du sowieso nichts anderes als puren Text anzeigen.
Oder willst du bloß die URL des Logos mit im value-Attribut unterbringen? Wozu?
Und hast du überhaupt ein PHP-Problem, oder eigentlich ein HTML-Problem?
Für ein Lösungsweg wäre ich dankbar!
Mag sein. Leider stelle ich aber fest, dass ich aus deiner Beschreibung überhaupt nicht schlau werde. Auffällig, dass das bei deinen Problembeschreibungen meistens so ist.
$sql = "SELECT sendung, senderlogo FROM dropdown_sendung ";
$result = mysql_query($sql);
// für jeden Eintrag ein Option-Tag erstellen
while ($arrsendung = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($arrsendung as $zeile) {
$sel = isselected($zeile, $_POST['sendung']);if($arrsendung['sendung'] == "*") {
echo '<optgroup label="*">';
} else {echo '<option value="'.$zeile.'"'.$sel .'>'.$zeile.'</option>';
}
}
Yo, diese Schleife scheint die option-Elemente zu generieren. Und was ist daran nun nicht okay?
Ciao,
Martin
Nun möchte ich den dazu passenden Wert "senderlogo" in einem $Post_senderlogo haben, soll aber nicht im Selectfeld sichtbar sein.
An dieser Stelle steige ich aus.
Wie jetzt, du willst noch ein Logo anzeigen, das soll aber nicht sichtbar sein? In einem option-Element kannst du sowieso nichts anderes als puren Text anzeigen.
Oder willst du bloß die URL des Logos mit im value-Attribut unterbringen? Wozu?
Der ausgewählte Wert des Selectfeldes "sendung" wird in einer neuen DB-Tabelle "liste" gespeichert. Ich möchte den passenden Logonamen zur Sendung mit dazu speichern (sendung_a + logo_a.png). Der Logoname soll aber im Selectfeld nicht aufgelistet werden.
Gruß
Hi,
Der ausgewählte Wert des Selectfeldes "sendung" wird in einer neuen DB-Tabelle "liste" gespeichert. Ich möchte den passenden Logonamen zur Sendung mit dazu speichern (sendung_a + logo_a.png).
Du willst also einen Wert, den du serverseitig ermittelst, zum Client übertragen, nur um ihn von dort wieder zur Speicherung an den Server zu schicken …?
Ja warum machst du das denn nicht gleich im zweiten Schritt – selektierst dir den zur gewählten Sendung passenden Wert, und speicherst sie dann zusammen ab?
(Das ganze klingt übrigens stark so, also ob du nicht vernünftig normalisiert hättest.)
MfG ChrisB
Hallo,
Wie jetzt, du willst noch ein Logo anzeigen, das soll aber nicht sichtbar sein? In einem option-Element kannst du sowieso nichts anderes als puren Text anzeigen.
Oder willst du bloß die URL des Logos mit im value-Attribut unterbringen? Wozu?
Der ausgewählte Wert des Selectfeldes "sendung" wird in einer neuen DB-Tabelle "liste" gespeichert. Ich möchte den passenden Logonamen zur Sendung mit dazu speichern (sendung_a + logo_a.png). Der Logoname soll aber im Selectfeld nicht aufgelistet werden.
also ist das Stück Code, das du gezeigt hast, völlig irrelevant, weil es ja nur die Ausgabe _zum Browser_ generiert.
Du willst aber bei der Antwort _vom Browser_ und _zum Server_ die nötigen Informationen wieder zusammensuchen. Was liegt also näher, als an der Stelle den vom Browser gelieferten Namen der Sendung wieder aus der DB rauszusuchen und das zugehörige Logo von dort zu nehmen? Wenn es nicht im Browser angezeigt werden soll, brauchst du es ihm ja auch nicht anzubieten, nur um es nachher möglicherweise manipuliert wieder zurückzubekommen.
Ciao,
Martin
Was liegt also näher, als an der Stelle den vom Browser gelieferten Namen der Sendung wieder aus der DB rauszusuchen und das zugehörige Logo von dort zu nehmen? Wenn es nicht im Browser angezeigt werden soll, brauchst du es ihm ja auch nicht anzubieten, nur um es nachher möglicherweise manipuliert wieder zurückzubekommen.
Ciao,
Martin
mmhh,
kannst du mir wenigstens ein Ansatz, ein Link ... zeigen.
Wird das dann gleich mit MySQL gemacht? Nach was muß ich denn da suchen?
Gruß
Hallo,
Was liegt also näher, als an der Stelle den vom Browser gelieferten Namen der Sendung wieder aus der DB rauszusuchen und das zugehörige Logo von dort zu nehmen? Wenn es nicht im Browser angezeigt werden soll, brauchst du es ihm ja auch nicht anzubieten, nur um es nachher möglicherweise manipuliert wieder zurückzubekommen.
kannst du mir wenigstens ein Ansatz, ein Link ... zeigen.
Wird das dann gleich mit MySQL gemacht? Nach was muß ich denn da suchen?
was meinst du? Du hast doch schon alles! Anstatt den Sender bzw. das Senderlogo schon beim Generieren des Formulars rauszusuchen, tust du das eben erst bei der Antwort, die aus diesem Formular entsteht.
Abgesehen davon schließe ich mich Chris an: Willst du wirklich Informationen mehrfach redundant speichern?
Nicht schön ...
So long,
Martin
Anstatt den Sender bzw. das Senderlogo schon beim Generieren des Formulars rauszusuchen, tust du das eben erst bei der Antwort, die aus diesem Formular entsteht.
Hallo,
gebe ich einer Variable einen festen Wert $selectId = "7"; , dann wird der passende Logoname in der Fehlerliste gespeichert.
Wie bekomme ich denn jetzt die id der ausgewählten Zeile im Selectfeld, um diese dann an $selectId zu übergeben?
<select name="sendung" id="sendung" >
<optgroup label="Sendung">
<?php
$sql = "SELECT sendung FROM dropdown_sendung ";
$result = mysql_query($sql);
// für jeden Eintrag ein Option-Tag erstellen
while ($arrsendung = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($arrsendung as $zeile) {
$sel = isselected($zeile, $_POST['sendung']);
if($arrsendung['sendung'] == "*") {
echo '<optgroup label="*">';
} else {
echo '<option value="'.$zeile.'"'.$sel .'>'.$zeile.'</option>';
}
}
}
?>
</select>
$selectId = "7";
$sql = "INSERT INTO `FW_Fehlerbericht`
(`DATUM`, `STEMPEL`, `UHRZEIT`, `DAUER`, `SENDUNG`, `SENDERLOGO`, `FEHLERKATEGORIE`, `ONAIR`, `BESCHREIBUNG`, `MASSNAHME`, `ANMERKUNG`, `M_NAME`, `SCHICHT`, `ORT` )
SELECT
'" .mysql_real_escape_string( date_german2mysql($_POST["datum"])). "',
'" .mysql_real_escape_string( $_POST["stempel"] ). "',
'" .mysql_real_escape_string( $_POST["uhrzeit"] ). "',
'" .mysql_real_escape_string( $_POST["dauer"] ). "',
ds.sendung,
ds.senderlogo,
'" .mysql_real_escape_string( $_POST["fehlerkategorie"] ). "',
'" .mysql_real_escape_string( $_POST["radio"] ). "',
'" .mysql_real_escape_string( $_POST["beschreibung"] ). "',
'" .mysql_real_escape_string( $_POST["massnahme"] ). "',
'" .mysql_real_escape_string( $_POST["anmerkung"] ). "',
'" .mysql_real_escape_string( $_SESSION["m_name"]."',
'" .mysql_real_escape_string( $_SESSION["schicht"] ). "',
'" .mysql_real_escape_string( $_SESSION["ort"] ). "'
FROM
dropdown_sendung AS ds
WHERE
ds.id = {$selectId}";
Abgesehen davon schließe ich mich Chris an: Willst du wirklich Informationen mehrfach redundant speichern?
Nicht schön ...
Dazu habe ich dann später noch 'ne Frage!
Hallo,
ich habe es jetzt so gemacht. Das speichern funktioniert jetzt.
Nun habe ich ein weiteres Problem und finde dazu keine Lösung.
Da bräuchte ich bitte noch einmal Hilfe.
Im Selectfeld werden jetzt auch die ID's mit angezeigt, das sollte aber nicht so sein.
Gruß
<div>
<select class="select_mac" name="sendung" id="sendung" >
<optgroup label="Sendung">
<?php
$sql = "SELECT id, sendung FROM dropdown_sendung ";
$result = mysql_query($sql);
while ($arrsendung = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($arrsendung as $zeile) {
$sel = isselected($zeile, $_POST['sendung']);
if($arrsendung['sendung'] == "*") {
echo '<optgroup label="*">';
} else {
echo '<option value="'.$arrsendung['id'].'"'.$sel .'>'.$zeile.'</option>';
}
}
}
?>
</optgroup>
</select>
</div>
SELECT
'" .mysql_real_escape_string( date_german2mysql($_POST["datum"])). "',
'" .mysql_real_escape_string( $_POST["stempel"] ). "',
'" .mysql_real_escape_string( $_POST["uhrzeit"] ). "',
'" .mysql_real_escape_string( $_POST["dauer"] ). "',
ds.sendung,
ds.senderlogo,
'" .mysql_real_escape_string( $_POST["fehlerkategorie"] ). "',
'" .mysql_real_escape_string( $_POST["radio"] ). "',
'" .mysql_real_escape_string( $_POST["beschreibung"] ). "',
'" .mysql_real_escape_string( $_POST["massnahme"] ). "',
'" .mysql_real_escape_string( $_POST["anmerkung"] ). "',
'" .mysql_real_escape_string( $_SESSION["m_name"]."',
'" .mysql_real_escape_string( $_SESSION["schicht"] ). "',
'" .mysql_real_escape_string( $_SESSION["ort"] ). "'
FROM
dropdown_sendung AS ds
WHERE
ds.id = {$_POST['sendung']}";
...hat sich erledigt!
Danke
Hi,
Nun möchte ich den dazu passenden Wert "senderlogo" in einem $Post_senderlogo haben, soll aber nicht im Selectfeld sichtbar sein.
Na welcher Teil einer Option ist denn „sichtbar“, und welcher nicht?
MfG ChrisB