Antworten auf deine Fragen:
Neues Thema erstellen

Dynamische Auswahlliste: Name und ID übergeben

Isometric

Powerproster

Hallo zusammen,

ich lasse mir eine Auswahlliste dynamisch gererieren:

PHP:
 <select name="auswahl">
        <?php
            $sql="SELECT id, firstname, lastname FROM addressbook ORDER BY lastname, firstname ASC";
            $result = mysql_query($sql);
            while ($myrow = mysql_fetch_array($result)) {
                echo "<option>".$myrow["lastname"]." ". $myrow["firstname"]. "</option>\n";
            }
        ?>
    </select>
Gibt es eine Möglichkeit die ID des angewählten Listenelementes auch zu übergeben?
 

Duddle

Posting-Frequenz: 14µHz

AW: Dynamische Auswahlliste: Name und ID übergeben

<option>-Tags können ein value-Attribut besitzen, genauso wie die meisten anderen Elemente eines Formulars. Du musst also nur die id des Datensatzes als value erzeugen lassen.


Duddle
 

Isometric

Powerproster

AW: Dynamische Auswahlliste: Name und ID übergeben

Das Zuweisen der ID an value habe ich hinbekommen, aber ich scheitere daran, wenn ich nicht nur die ID, sondern auch den Namen zuweisen möchte.

$row[0] ist die ID
$row[1] ist der Name

Inzwischen habe ich eine Funktion, die so aussieht:
PHP:
  while ($row = mysql_fetch_row($result)) {
    $anzeige = $row[0] . ' ' . $row[1];
    $optionlist .= '<option value="' . $row[0] . '"' . ($row[0] == $selection ? ' selected="selected"' : '') . '>' . $anzeige .'</option>';
    }
So bekomme ich die ID übergeben und kann sie weiter bearbeiten. Allerdings hätte ich im value auch noch gern den Namen und das bekomme ich nicht hin ...:mad:
 

Duddle

Posting-Frequenz: 14µHz

AW: Dynamische Auswahlliste: Name und ID übergeben

Hmmm? Wenn du weißt,
a) wie du $row[0] ausgibst,
b) das der Name in $row[1] steht und
c) wie Strings verbunden werden,
wieso gibst du dann nicht einfach $row[1] verbunden mit $row[0] aus?


Duddle
 

Isometric

Powerproster

AW: Dynamische Auswahlliste: Name und ID übergeben

Gute Frage ....

So wie du es vorgeschlagen hast klappt es.

Ich hatte gedacht es geht "eleganter". Ich brauche die Werte später einzeln und habe versucht das array "row" als value zu übergeben und dann später die verschiedenen Werte des arrays zu verarbeiten.

Jetzt verbinde ich die Werte des arrays "row" erst mit einem Trennzeichen zu einem String und später trenne ich das ganze wieder mit der explode-Funktion.

Gibt es keine Möglichkeit das array "row" komplett zu übergeben? So habe ich es versucht, allerdings erfolglos ...

PHP:
  while ($row = mysql_fetch_row($result)) {
    $anzeige = $row[0] . ' ' . $row[1];
    $optionlist .= '<option value="' . $row . '"' . ($row[0] == $selection ? ' selected="selected"' : '') . '>' . $anzeige .'</option>';
    }
 
R

rwGrafik

Guest

AW: Dynamische Auswahlliste: Name und ID übergeben

Warum gibst Du die id nicht einfach in einem id-Attribut und den namen im value aus?

Um alle Inhalte von row auszugeben würd ich eine foreach-Schleife empfehlen:
z.B. so: foreach($row as $ausgabe) echo ausgabe;
 

Isometric

Powerproster

AW: Dynamische Auswahlliste: Name und ID übergeben

Ich hole mal etwas weiter aus:

die dynamische Auswahlliste wird so erzeugt:
PHP:
<select name="eintrag" size="1"> <?php echo  create_optionlist('addressbook', 'id', 'lastname, firstname', $id_hf);  ?> </select>
in der Funktion "create_optionlist" steckt dann die While-Schleife:

PHP:
while ($row = mysql_fetch_row($result)) {
    $anzeige = $row[0] . ' ' . htmlspecialchars($row[1]);
    if (isset ($row[2])) {
    $anzeige .= " " . htmlspecialchars($row[2]) ;
    }
    
    $optionlist .= '<option value="' . $row[0] . ',' . $row[1] . '"' . ($row[0] == $selection ? ' selected="selected"' : '') . '>' . $anzeige .'</option>'; //     $optionlist .= '<option value="' . $row[0] . '"' . ($row[0] == $selection ? ' selected="selected"' : '') . '>' . $anzeige .'</option>';
    }
  return $optionlist;
Nach dem Absenden des Formulares werden folgende Werte für den Eintrag in die Datenbank erzeugt:

PHP:
 $eintrag_sql = explode(",", $eintrag);
        $team['lastname']              = $eintrag_sql[1];
        $team['id_hf']                 = $eintrag_sql[0];
Ich suche jetzt eine Möglichkeit, wie ich das Verketten des Strings und das anschließende Exploden umgehen kann. Müßte doch möglich sein, oder?
 
R

rwGrafik

Guest

AW: Dynamische Auswahlliste: Name und ID übergeben

So wie ich das sehe, wird das nicht anders gehen, da nur ein Name-Attribut pro HTML-TAG erlaubt ist. Den Inhalt desselben, kannst Du dann, wie geschen auslesen.
Und so kompliziert, bzw. aufwendig ist das doch gar nicht, oder?
;) Ralph
 

Isometric

Powerproster

AW: Dynamische Auswahlliste: Name und ID übergeben

Der Aufwand hält sich zwar in Grenzen, allerdings wäre es mit einem Array flexibler und ich könnte auch mal drei oder noch mehr einzelne Werte übergeben ohne den Code jedes mal anpassen zu müssen:
 
R

rwGrafik

Guest

AW: Dynamische Auswahlliste: Name und ID übergeben

Dann machs doch wie geschrieben:
ersetze folgende Zeile:
$optionlist .= '<option value="' . $row[0] . ',' . $row[1] . '"' . ($row[0] == $selection ? ' selected="selected"' : '') . '>' . $anzeige .'</option>'; // $optionlist .= '<option value="' . $row[0] . '"' . ($row[0] == $selection ? ' selected="selected"' : '') . '>' . $anzeige .'</option>';
durch:
$optionlist .= '<option value="';
//hierdurch ist die Anzahl der enthaltenen Werte unerheblich
foreach[$row as $x) $optionlist .= $x . ',';
$optionlist .='"' . ($row[0] == $selection ? ' selected="selected"' : '') . '>' . $anzeige .'</option>'; // $optionlist .= '<option value="' . $row[0] . '"' . ($row[0] == $selection ? ' selected="selected"' : '') . '>' . $anzeige .'</option>';
 
R

rwGrafik

Guest

AW: Dynamische Auswahlliste: Name und ID übergeben

Hm, wie packt man Code in son PHP-Code-Behälter?
Nu ja muss jetzt los, Dir noch viel Spass und frohe Pfingsten.
:) Ralph
 

Duddle

Posting-Frequenz: 14µHz

AW: Dynamische Auswahlliste: Name und ID übergeben

Du musst doch nicht die an die ausgewählte id angehängten Daten komplett im Formular verstauen.

Wenn du eine eindeutige id hast und übergeben bekommst, warum fragst du dann nicht die Datenbank nach den Daten für diese id? Ich akzeptiere "aber das sind 2 Datenbank-Anfragen statt 1!" nicht als Antwort, solche "Optimierungen" sind im Normalfall unnötig/übereifrig.



Duddle
 

Isometric

Powerproster

AW: Dynamische Auswahlliste: Name und ID übergeben

@Duddle:
da hast natürlich vollkommen recht, dass es Quatsch ist alle Daten, die an der ID dran hängen in die andere Tabelle zu kopieren.
In diesem speziellen Fall ist es für mich aber praktischer wenn ich neben der ID noch 2 weitere Werte (Vorname und Nachname) übernehme, weil die Hauptseite so aufgebaut ist, dass man die angezeigten Spalten per Variablen steuern kann. Und im Moment bin ich sicher überfordert, wenn ich versuche die Startseite so umzuprogrammieren, dass ich über die ID mir aus meheren Tabellen Spalten anzeigen kann lassen kann, deren Auswahl ich über eine Config-Datei steuere.
Alle anderen Auswertungen und Anzeigen greifen über die IDs dann immer auf die Original-Tabelle zu.
Ist sicher nicht perfekt programmiert, aber die übernommen Werte (Vorname und Nachname) ändern sich in der Regel nicht.

@rwGrafik:
danke dir, so funktioniert es. Einziger kleiner Schönheitsfehler ist ein "," zu viel, aber das stört ja eigentlich nicht, weil es nur als Trennzeichen funktioniert. Hast du noch eine Idee, wie man das noch wegbekommt? Im Prinzip dürfte beim letzten Schleifendurchlauf kein "," mehr angehängt werden.

Und ...
Das Icon für den [ PHP ] - Code findest du 3 Icons neben dem Zitat-Icon.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben