php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.04.2011, 22:56  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 141
PHP-Kenntnisse:
Anfänger
EG2011 ist zur Zeit noch ein unbeschriebenes Blatt
Standard <select> Element shrink?

Wertes Board =),

Ich bastel aktuell an einem kleinen Fußball-Browsergame.

Nun stehe ich vor folgender Frage:

Zu beginn des Spiels muss ein eingeloggter User eine Mannschaft wählen.
Hierzu befindet sich folgendes <form>-Element auf meiner Seite:

Code:
						<h2>Bitte wähle deine Mannschaft:</h2>
						<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
						<select name="Mannschaften">
							<option value="1">Bayern München</option>
							<option value="2">Werder Bremen</option>
							<option value="3">Borussia Dortmund</option>
						</select>
						<input type="submit" value="Team auswählen!" />
						</form>
Gibt es eine elegante Möglichkeit, dass ich dieses <select> Element verkleinere, wenn ein User ein Team aus der Liste ausgewählt hat? Ich möchte ja nicht, dass der FC Bayern doppelt vergeben werden kann.

Wie würdet ihr das Thema elegant lösen?

Thx for help =)!

Seb
EG2011 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.04.2011, 22:59  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wozu sollte das relevant sein? Sitzen die Spieler am selben Browser? Und was hat das bitte MIT PHP ZU TUN!

[MOD: Verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 18.04.2011, 23:54  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 141
PHP-Kenntnisse:
Anfänger
EG2011 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zu deiner ersten Frage:
Es hat ganz einfach deshalb Relevanz, weil jeder User ein unterschiedliches Team verwalten soll.
Sonst wird Bayern Deutscher Meister und Bayern steigt in die 2. Liga ab.......und Bayern spielt an jedem zweiten Spieltag gegen Bayern........

Zu deiner zweiten Frage:
Die Spieler kriegen jeder einen Log-In, sitzen aber NICHT am selben Browser. Sie haben also unterschiedliche Session-IDs, falls deine Frage darauf abzielen sollte.

Zu deiner dritten Frage:
Die Frage ist doch gerade, ob es hierzu sinnvolle Lösungen in HTML oder auch PHP gibt.
Meinetwegen auch Javascript oder was auch immer....

Gruß, Seb
EG2011 ist offline   Mit Zitat antworten
Alt 18.04.2011, 23:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

1 & 2: Das bedeutet aber, wenn Spieler 1 was auswählt, dass es beim Spieler 2 ausgeblendet werden muss. Und das hast Du nicht gefragt. Und technisch besonders elegant geht das auch nicht.

Also bitte mehr Hintergrundinfos.


Zitat:
Die Frage ist doch gerade, ob es hierzu sinnvolle Lösungen in HTML oder auch PHP gibt.
Meinetwegen auch Javascript oder was auch immer....
Hier entlang bitte. Wir erwarten hier im Forum ein gewisses Grundwissen, oder dass Du Dich damit im Vorfeld beschäftigst. Lerne Grundlagen | Quellensammlung
Egal, irgendwas zeugt nicht davon, dass Du schon groß über die Lösung, nicht mal über die genaue Aufgabe nachgedacht hast.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 19.04.2011, 00:05  
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

Zitat:
Zitat von EG2011 Beitrag anzeigen
Die Spieler kriegen jeder einen Log-In, sitzen aber NICHT am selben Browser.
„Zeitgleich“ werden sie dann aber wohl in den meisten Fällen auch nicht arbeiten.

Das clientseitige Handling ist also gar nicht das vorrangige Problem.

Serverseitig hingegen musst du folgende zwei Dinge implementieren:
- Wenn ein Nutzer dieses Formular aufruft, dann zeige ihm die Mannschaften, die andere Spieler bereits gewählt haben, gar nicht mehr an.
- Wenn der Nutzer das Formular abschickt, dann prüfe vor dem weiteren Verarbeiten bzw. Speichern der Daten, ob die gewählte Mannschaft immer noch nicht von einem anderen Nutzer gewählt wurde.

Ein generelles Stichwort, mit dem du dich auseinandersetzen solltest in diesem Zusammenhang, ist TOCTTOU.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 19.04.2011, 13:30  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 141
PHP-Kenntnisse:
Anfänger
EG2011 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hey ChrisB!

Danke für den Tipp mit dem TOCTTOU.
Dein erster Punkt ist genau das, was ich erreichen will.
Sobald eine Mannschaft gewählt wurde soll sie aus der dropdown-Liste des <select>-Elements verschwinden. Ich denke man kann sowas irgendwie über ein Array lösen in dem immer genau das, was gerade in $_POST steht herausgenommen/hinzugefügt wird. Das setzt natürlich voraus, dass man auch die einzelnen Optionen des <select>-Elements irgendwie dynamisch ausgibt und nicht statisch, wie ich es oben gemacht habe.

Muss mal schauen, ob ich hier eine schöne Lösung hinkriege.

Ansonsten teste ich als Option-B mal, ob man Teile eines <select>-Elements einfach auf hidden setzen kann. Das könnte man dann ja mit ner einfachen if/else-Abfrage oder dem ternary-operator machen.

Gruß, Seb
EG2011 ist offline   Mit Zitat antworten
Alt 19.04.2011, 13:41  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Lerne Grundlagen. Ganz wichtig. Du musst als erstes lernen, was genau im Internet passiert, was ein Request ist, was wann ausgeführt wird. Es bringt nichts, dir nun was vorzukauen was du eh nicht verstehst. Wenn du schon nicht verstanden hast, dass du, was der erste User ausführt, beim zweiten nicht wirklich "siehst", dann hast du bereits ein Grundsatzproblem. Da können wir dir nicht helfen. Da helfen gute Tutorials und Übung.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online   Mit Zitat antworten
Alt 19.04.2011, 14:07  
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

Zitat:
Zitat von EG2011 Beitrag anzeigen
Sobald eine Mannschaft gewählt wurde soll sie aus der dropdown-Liste des <select>-Elements verschwinden. Ich denke man kann sowas irgendwie über ein Array lösen in dem immer genau das, was gerade in $_POST steht herausgenommen/hinzugefügt wird. Das setzt natürlich voraus, dass man auch die einzelnen Optionen des <select>-Elements irgendwie dynamisch ausgibt
In erster Linie setzt das mal voraus, dass die bereits gewählten Optionen serverseitig permanent gespeichert werden.

Zitat:
Ansonsten teste ich als Option-B mal, ob man Teile eines <select>-Elements einfach auf hidden setzen kann.
Das ist das gleiche in grün (nur schlechter umgesetzt), und ändert an der grundsätzlichen Problematik genau Nullkommanichts.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 19.04.2011, 14:39  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Diese Idee setzt so vieles voraus, dass sie kaum praktikabel ist. Z.B. dass nicht zwei Leute gleichzeitig die selbe Mannschaft auswählen. Es ist praktisch einfach nicht realisierbar, dass bei einer gleichzeitigen Auswahl (iregndeines Punktes)
a) eine Priorität eingeräumt wird
b) der zweite rechtzeitig benachrichtigt wird
c) der zweite überhaupt benachrichtigt wird
Das gleiche passiert, wenn der 1. sich umentscheidet. Dann müssen alle wieder benachrichtigt werden, dass die Selection wieder frei ist.

Das größte Problem ist, dass der TE gar nicht versteht, wie Client-Server-Prozesse funktionieren.
Zitat:
Ich denke man kann sowas irgendwie über ein Array lösen in dem immer genau das, was gerade in $_POST steht herausgenommen/hinzugefügt wird.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 19.04.2011, 14:56  
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

genau das nikosch ...

an den Fragesteller .... du hast da PHP und einen Webserver, das ist keine ständig laufende Anwendung, die mit Clients kommuniziert ... bitte beschäftige dich wenigstens grundlegend mit der Arbeitsweise eines Http-Servers, dann wüßtest du bereits, dass dein Array zu dem Zeitpunkt, wo der Anwender dieses Formular zu sehen bekommt schon gar nicht mehr existiert. Demzufolge musst du aus dem Array auch nix löschen ... du musst nur verhindern, dass bei weiteren Usern alle Mannschaften wieder auftauchen - was sich mit einem Flag in der Datenbank bei den Mannschaften erledigen ließe (mannschaft_vergeben enum('ja','nein') default 'nein' NOT NULL als neue Spalte in die Tabelle einfügen)
Dann liest du für weitere User nur noch Mannschaften ein, die mannschaft_vergeben='nein' haben ......

Ist aber nur ein Vorschlag, denn der Rest, den nikosch anführt, bleibt natürlich ... 2 Leute wählen zufällig zeitgleich ... was dann ? und diese Kollision ist für dein PHP-script gar nicht leicht zu erkennen
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 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
Fusszeile verschwindet, Leerzeile fehlt ariane PHP Einsteiger 4 17.04.2011 18:21
Text in einem DIV Element austauschen. Elias96 JavaScript, Ajax und mehr 1 28.02.2011 15:09
[Erledigt] SimpleXML: Array enthalten, aber nur Zugriff auf erstes Element ??? Arne Drews PHP Einsteiger 18 31.01.2011 21:31
HTML-String auslesen bit4fox PHP Einsteiger 10 08.01.2011 16:33
Pixel addieren und Element somit neu positionieren schlägt fehl litterauspirna JavaScript, Ajax und mehr 9 29.10.2010 22:04
[Erledigt] Mit XPath im DOMDocument PHP5 und der foreach Schleife einen Element WERT hjw-kunstwerk PHP Tipps 2010 3 03.06.2010 00:07
Längstes Element eines Array berechnen thiagojonas PHP Tipps 2010 7 04.04.2010 17:42
Auf ein einzelnes Element eine ausgewählten Datensatzes zugreifen fender PHP Tipps 2009 12 15.01.2010 16:18
Element erstellen, in Quelltext einfügen und auf dieses zugreifen können R4v3r JavaScript, Ajax und mehr 8 18.12.2009 11:33
Welche Elemente B sind ähnlich dem Element A Anwender27 Scriptbörse 7 01.05.2008 11:45
Array Element vor und nach dem aktuellen Element ausgeben NetLook PHP Tipps 2006 2 09.05.2006 15:29
angeklickten Element / Kategorie auslesen phpbeginner PHP Tipps 2006 2 06.04.2006 20:36
[JS/CSS] Element erst onclick sichtbar machn script.aculo.us StatischeEntladung HTML, Usability und Barrierefreiheit 1 06.04.2006 18:32
[Erledigt] Element mit Zeitschalter HTML, Usability und Barrierefreiheit 1 04.10.2005 11:44
&amp;lt;select&amp;gt; (de)aktivieren HTML, Usability und Barrierefreiheit 2 06.01.2005 15:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
maven javascript shrink, \<select>\ and \shrink\ and \javascript\, php select element, simplexml 2 verschiedene elemente

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:41 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