php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.03.2011, 09:06  
Neuer Benutzer
 
Registriert seit: 18.11.2010
Beiträge: 29
PHP-Kenntnisse:
Fortgeschritten
Barodscheff zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Auswahlliste mit zwei Spalten

Guten Morgen,

ich habe mal eine Frage bzw. benötige mal Hilfe.

Ich habe ein Formular und darin ein dropdown Feld, den Inhalt lese ich aus einer MySQL Tabelle aus.

id | name
1 | paul
2 | klaus

Im Feld wird als Value die ID angezeigt.

Gibt es die Möglichkeit, wenn man auf den Auswahlpfeil klickt danach eine zweite Spalte, wie in einer Tabelle, anzuzeigen die den Namen beinhaltet?

PHP-Code:
<select name='dose'>
<?php
$hilf
=leerstellenEntfernen($hilf);
$a=count($hilf);
for(
$b=0;$b<$a;$b++)
  if(
$hilf[$b]==$dose)
      echo 
"<option value='$hilf[$b]' selected>$hilf[$b]</option>";
  else
      echo  
"<option value='$hilf[$b]'>$hilf[$b]</option>";
?>
</select>
Man kann ja als Anzeigename einfach die zweite Spalte mit hinzufügen, aber ich will eine Tabelle haben wo man beide Spalten zu sehen bekommt...

In Access geht es, wenn man eine Abfrage danach ausführt und ich soll die Anwendung übernehmen, aber das stellt ein größeres Problem dar.

Freundliche Grüße
Barodscheff ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.03.2011, 09:20  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

nicht als echte Tabelle - <option> Darf nichts als #PCDATA (als Kindelement) enthalten; also eine echte HTML-Tabelle darfst du dort nicht machen - aber du könntest in der Anzeige nur den Namen nehmen - oder eben die 2 Spalten "simulieren" ...

PHP-Code:
for($b=0;$b<$a;$b++)
   echo 
"<option value='".$hilf[$b]."' ";
    if(
$hilf[$b]==$dose)
       echo 
"selected";
    echo 
">".substr("      ",strlen(''.$hilf[$b])*1.6).$hilf[$b].' | '.$name[$b]."</option>";
?> 
den Faktor hinter dem strlen-Aufruf (1.6) musst du dann ein wenig variieren, bis es hübsch genug aussieht ...
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (11.03.2011 um 09:29 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 11.03.2011, 09:21  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

Ich versteh nicht genau, was du meinst, aber vielleicht hilft dir ein Javascript onclick Event? Ansonsten musst du mal genauer beschreiben was du machen willst. In deinem Code ist nicht ersichtlich, was für ein Inhalt $hilf hat und ich verstehe auch nicht, wie du was erweitern willst.

Du solltest aber auf jeden Fall valides HTML schreiben, wenn du dich schon als Fortgeschritten ausgibst

Edit: okay, nach eagle275's Post bin ich total verwirrt. Jetzt werden Variablen ($name) aus dem nichts hergezaubert, Konstrukte verwendet, die ich äußerst komisch finde
PHP-Code:
strlen(''.$hilf[$b]) 
und Zahlen die ich nicht verstehe (1.6). Klärt mich auf^^
__________________
http://tippsgegenlangeweile.de

Young Jedi ist offline   Mit Zitat antworten
Alt 11.03.2011, 09:22  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Was auch immer du da machst das sieht schräg aus.

PHP-Code:
$sql "SELECT id,name FROM tabelle";
$query mysql_query$sql );
 
echo 
'<select name="bla">';
 
while ( 
$result mysql_fetch_assoc$query ) ) {
    echo 
'<option value="'.$result['id'].'">'.htmlspecialchars$result['name'] ).'</option>';
}
 
</
select
Das ist schon alles was man braucht.

EDIT sagt,
ich glaube ich habe die Frage doch nicht richtig verstanden wenn ich mir die anderen Antworten die schneller waren so anschaue.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 11.03.2011, 09:57  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von Young Jedi Beitrag anzeigen
Ich versteh nicht genau, was du meinst, aber vielleicht hilft dir ein Javascript onclick Event? Ansonsten musst du mal genauer beschreiben was du machen willst. In deinem Code ist nicht ersichtlich, was für ein Inhalt $hilf hat und ich verstehe auch nicht, wie du was erweitern willst.

Du solltest aber auf jeden Fall valides HTML schreiben, wenn du dich schon als Fortgeschritten ausgibst

Edit: okay, nach eagle275's Post bin ich total verwirrt. Jetzt werden Variablen ($name) aus dem nichts hergezaubert, Konstrukte verwendet, die ich äußerst komisch finde
PHP-Code:
strlen(''.$hilf[$b]) 
und Zahlen die ich nicht verstehe (1.6). Klärt mich auf^^
Das tut mir leid, dass ich dich verwirrt habe ...

aber : er schreibt, dass er bisher die ID für Value-Attribut verwendet - die sollte dann in $hilf[] stehen - wenn er zusätzlich den Namen dort anzeigen will, dann brauchts ne zusätzliche Variable, die ich wegen des Offensichtlichen dann $name[] genannt habe ...

und der Konstrukt mit dem substr(" ",strlen) - ist ein "Trick", den ich mir unter Java mal irgendwo abgeschaut habe - funktioniert auch unter PHP . denn die Verwendung von "\t" garantiert ja nicht die Ausrichtung an festen Tabstopps, wie unter Word gewohnt, sondern fügt einfach 3 bis 5 Leerzeichen ein - damit wird aber die ursprüngliche Länge der Zahl ID nicht berücksichtigt. Und ich würde sie gern rechtsbündig ausrichten (damit der nachfolgende Teil "halbwegs" als senkrechte Trennlinie durchgeht und dahinter dann der Name steht
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 11.03.2011, 10:37  
Neuer Benutzer
 
Registriert seit: 18.11.2010
Beiträge: 29
PHP-Kenntnisse:
Fortgeschritten
Barodscheff zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Wieso gibt es die Möglichkeit nicht es genauso wie in Access zu gestalten-.-

Habe schon sovieles probiert, aber ist alles nicht das Gelbe vom Ei:-/

Danke trotzdem...

könnte bei der nächsten Version von HTML und PHP dazu kommen^^
Barodscheff ist offline   Mit Zitat antworten
Alt 11.03.2011, 11:03  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Barodscheff Beitrag anzeigen
Wieso gibt es die Möglichkeit nicht es genauso wie in Access zu gestalten-.-

Habe schon sovieles probiert, aber ist alles nicht das Gelbe vom Ei:-/

Danke trotzdem...

könnte bei der nächsten Version von HTML und PHP dazu kommen^^
Ich verstehe immer noch nicht so wirklich und richtig was du eigentlich wirklich willst.

Gib mal ein Beispiel bitte wo man sich was vorstellen kann drunter.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 11.03.2011, 11:12  
Neuer Benutzer
 
Registriert seit: 18.11.2010
Beiträge: 29
PHP-Kenntnisse:
Fortgeschritten
Barodscheff zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

In Access:

man hat eine Auswahlliste und es steht da werte drin, wenn man auf den Anzeigepfeil drückt, dann kommt doch eine Liste aller Werte die er kennt.
Und daneben soll er noch ein zugehörigen Wert anzeigen.

Als Beispiel:

Es gibt Mitarbeiter die in Räumen sitzen.

Man sucht nach einem Mitarbeiter und wenn man sich die Liste anzeigen lässt, dann soll man auch sehen in welchem Raum er sitzt.

Hoffe du kannst mir folgen....
Barodscheff ist offline   Mit Zitat antworten
Alt 11.03.2011, 11:26  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

ich denke nicht, dass dir HTML dort entgegenkommt - auch bei HTML5 ist es nicht möglich im <option> Tag etwas anderes unterzubringen als reinen Text (#PCData).

Wenn du dort die Information strukturiert stehen haben willst, dann bleibt dir nur, diesen Text geeignet zu bearbeiten ... - Monospace-Font wie zum Beispiel Courier .. dann sorgst du dafür, dass immer gleich viele Zeichen für die Zahl vorne verwendet werden, baust den Trennstrich ein und dahinter dann deine weitere Information - alternativ ... Dort steht in deinem Beispiel nur der Name - und sobald der User die Auswahl getroffen hat , sorgt eine kleine Javascript-Funktion dafür , dass in einem zugehörigen Text-Feld dann die Raumnummer erscheint. Das <select> Element in html ist jedenfalls von der Intention her Einspaltig ...

Andere Elemente sollen dagegen mit HTML5 Einzug halten, zum Bleistift das aus Office bekannte kombinierte Listenfeld (also ein EingabeTextfeld, an dem eine Select dran hängt. entweder sucht man aus der Liste, oder man tippt Zeichen ein und in der Liste scrollt es automatisch zu dem Element, das mit diesen Zeichen beginnt )
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 11.03.2011, 14:01  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Wenn man JavaScript hinzu nimmt, könnte man das schon realisieren - ist aber wegen des Eventhandlings auf Select/Options (welche Events in welcher Reihenfolge gefeuert werden, bzw. ob der Browser sie überhaupt feuert, Stichwort IE und click auf Option) etwas tricky.
Ein (primitives) Beispiel, wie das aussehen könnte, habe ich mal angehängt (getestet nur in Firefox und Opera).
Hat noch den kleinen Fehler, dass das Wiederherstellen der „Langtexte“ nicht korrekt gemacht wird, wenn man das Selectfeld mit der Maus aktiviert, und dann aber wieder die bereits gewählte Option selektiert - beim nächsten Aufklappen erscheinen dann nur die Zahlen, so lange bis man wieder explizit eine andere Option auswählt.
Das liesse sich zwar sicher auch noch irgendwie beheben - mir fehlt nur gerade die Lust dazu.

Auf Grund der erwähnten Stolperstellen im Eventhandling auf Selectfeldern wäre es aber vielleicht simpler, wenn man sich das gleich mit einer HTML-Liste (UL) und JavaScript selber bastelt (das Selectfeld dann nur als no-JS-Fallback). Dafür haben die gängigen Frameworks ja meist auch schon fertige Plugins, die man dann nur noch um die hier geforderte Funktionalität (Ausblenden von Textteilen im zugeklappten Zustand) erweitern müsste.
Angehängte Dateien
Dateityp: txt select_zweispaltig.htm.txt (2,1 KB, 57x aufgerufen)
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Auswahlliste Daten von DB MySQL übernehmen Johnny2511 PHP Tipps 2010 4 11.09.2010 15:35
[Erledigt] spalten in php durch arrays sortieren lassen Dintar1989 PHP Tipps 2010 3 29.06.2010 15:32
CSS 2 spalten layout und php d3x PHP Tipps 2010 9 10.06.2010 20:51
[Erledigt] INSERT ... SELECT - nicht alle Spalten aus dem Select benutzen? kip Datenbanken 4 01.09.2009 13:06
PHP/Access - Anfrageergebnis mit gesammten Spalten oder als Objekt ? SkiD PHP Tipps 2009 3 15.08.2009 23:50
Mehrere Spalten in einer Zeile einer 2 Tabelle ketchup PHP Tipps 2009 5 28.04.2009 07:49
dynamische Auswahlliste abi PHP Tipps 2008 1 12.06.2008 12:00
maximalwert aus mehreren Spalten obi PHP Tipps 2006 9 17.10.2006 12:55
Wie kann ich die Spalten einer Tabelle auslesen ? Datenbanken 0 31.10.2005 00:29
Auswahlliste mit php und mysql djma PHP-Fortgeschrittene 6 26.08.2005 23:57
Auswahlliste mit php und mysql djma PHP Tipps 2005-2 2 26.08.2005 22:54
drei Spalten einer Tabelle zusammenfügen Lia PHP Tipps 2005-2 24 16.08.2005 15:58
spalten zählen mit ausnahmen Datenbanken 8 16.07.2005 13:04
Addieren von 3 Spalten, nach Ergebnis sortieren Datenbanken 11 15.06.2005 09:54
Spalten Dynamisch als Tabelle anzeigen lassen(Spalten ausl.) Cyberbob_at_tot PHP Tipps 2005-2 6 04.06.2005 22:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
html option spalten, html auswahlliste mehrere spalten, html liste 2 spalten, html auswahlliste spalten, html auswahlliste mehrspaltig, html liste in zwei spalten, html list mit zwei spalten, html auswahllisten spalten, html option 2 spaltig, html liste zwei spalten, auswahlliste mehrere spalten, php auswahlliste spalten, html select option spalten, auflistung 2 spalten html, auswahlliste php zwei spalten, zweispaltige select option, php 2 spaltige auswahlliste, html auswahlliste strukturienen, liste mit mehrer spalten, zweite spalte bei auswahlliste anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum