|
You last visited: Today at 09:11
Advertisement
Dropdown oder Radio Button für Geschlecht
Discussion on Dropdown oder Radio Button für Geschlecht within the Web Development forum part of the Coders Den category.
04/22/2020, 10:30
|
#1
|
elite*gold: 0
Join Date: Mar 2013
Posts: 850
Received Thanks: 408
|
Dropdown oder Radio Button für Geschlecht
Hi,
ich möchte gerne für meine Seite ein Dropdown menü oder 3 Radio Button für das Geschlecht machen. Zugleich möchte ich aber auch, dass wenn bereits inhalt in der datenbank ist, dass dann das richtige Geschlecht wirklich angezeigt wird.
Bisher habe ich es folgendermaßen gelöst:
PHP Code:
function getCustomerSex() {
$user_infos = ORM::for_table('accounts')->where('Kundennummer', $_SESSION["login_user"])->find_one();
$Geschlecht = $user_infos->Geschlecht;
if($Geschlecht == 0){
echo'<select name="sex" class="form-control">
<option value="0">keine Angabe</option>
<option value="1">Männlich</option>
<option value="2">Weiblich</option>
<option value="3">Divers</option>
</select>';
}
else if($Geschlecht == 1){
echo'<select name="sex" class="form-control">
<option value="1">Männlich</option>
<option value="2">Weiblich</option>
<option value="3">Divers</option>
<option value="0">keine Angabe</option>
</select>';
}
else if($Geschlecht == 2){
echo'<select name="sex" class="form-control">
<option value="2">Weiblich</option>
<option value="3">Divers</option>
<option value="0">keine Angabe</option>
<option value="1">Männlich</option>
</select>';
}
else if($Geschlecht == 3){
echo'<select name="sex" class="form-control">
<option value="3">Divers</option>
<option value="0">keine Angabe</option>
<option value="1">Männlich</option>
<option value="2">Weiblich</option>
</select>';
}
}
Ich persönlich glaube aber, dass man diesen code massiv einkürzen kann.
Eventuell weiß ja einer wie man das am besten umsetzen kann.
Vielen dank und Lieben Gruß
|
|
|
04/22/2020, 12:46
|
#2
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
|
Du brauchst nur einmal das echo im Code, dann musst du nur bei der richtigen Option das Attribute selected dranhängen.
|
|
|
04/25/2020, 09:36
|
#3
|
elite*gold: 95
Join Date: Nov 2009
Posts: 669
Received Thanks: 47
|
Quote:
Originally Posted by {Skrillex}
PHP Code:
function getCustomerSex() { $user_infos = ORM::for_table('accounts')->where('Kundennummer', $_SESSION["login_user"])->find_one(); $Geschlecht = $user_infos->Geschlecht; if($Geschlecht == 0){ echo'<select name="sex" class="form-control"> <option value="0">keine Angabe</option> <option value="1">Männlich</option> <option value="2">Weiblich</option> <option value="3">Divers</option> </select>'; } else if($Geschlecht == 1){ echo'<select name="sex" class="form-control"> <option value="1">Männlich</option> <option value="2">Weiblich</option> <option value="3">Divers</option> <option value="0">keine Angabe</option> </select>'; } else if($Geschlecht == 2){ echo'<select name="sex" class="form-control"> <option value="2">Weiblich</option> <option value="3">Divers</option> <option value="0">keine Angabe</option> <option value="1">Männlich</option> </select>'; } else if($Geschlecht == 3){ echo'<select name="sex" class="form-control"> <option value="3">Divers</option> <option value="0">keine Angabe</option> <option value="1">Männlich</option> <option value="2">Weiblich</option> </select>'; } }
|
Die Lösung hast du von False ja schon bekommen. Was ich dir noch bezüglich deinen Variablen hinsichtlich der Übersichtlichkeit raten würde, wäre die Variablen in englischer Sprache zu halten ($Geschlecht -> $gender) und klein zu schreiben. Recht viel kürzen würde ich meiner Meinung nach bei dem Code nicht, letztendlich bleibt es gleich, ob du die IF-Abfrage über das komplette SELECT oder in den einzelnen OPTIONS machst. Je nachdem, ob der Benutzer gezwungen ist ein Geschlecht zu wählen könntest du auch noch eine zusätzliche Option mit dem Attribut disabled "Bitte wählen..." hinzufügen, dieses selected machen und das SELECT mit required versehen.
EDIT: Ich revidiere, es geht kürzer! Wenn du deine Options als Datenbankeintrag machst und die dann für das SELECT rausholst. Kannst mir gerne eine PN schreiben wenn du nicht weiter weißt
|
|
|
04/25/2020, 10:40
|
#4
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
|
Quote:
Originally Posted by Legithos
Recht viel kürzen würde ich meiner Meinung nach bei dem Code nicht, letztendlich bleibt es gleich, ob du die IF-Abfrage über das komplette SELECT oder in den einzelnen OPTIONS machst.
|
Das würde ich so nicht sagen, aus den 38 Zeilen kann man schnell 18 machen.
Wenn man will könnte noch mehr kürzen, aber ich wollte dir nur ein Beispiel liefern das es sehr wohl viel ausmacht (mehr als die Hälfte weniger).
PHP Code:
function getCustomerSex()
{
$userInfo = ORM::for_table('accounts')->where('customerNumber', $_SESSION["user"])->find_one();
$gender = $userInfo->gender;
$unselected = $gender === 0 ? ' selected' : '';
$male = $gender === 1 ? ' selected' : '';
$female = $gender === 2 ? ' selected' : '';
$diverse = $gender === 3 ? ' selected' : '';
return printf('
<select name="sex" class="form-control">
<option value="0"%s>keine Angabe</option>
<option value="1"%s>Männlich</option>
<option value="2"%s>Weiblich</option>
<option value="3"%s>Divers</option>
</select>', $unselected, $male, $female, $diverse);
}
|
|
|
04/27/2020, 11:52
|
#5
|
elite*gold: 0
Join Date: Mar 2013
Posts: 850
Received Thanks: 408
|
Danke für eure Antworten. Ich habe jetzt doch radio Button genutzt. Ich habe sowieso meinen kompletten code überarbeitet. Ich nutze nurnoch englische variablen etc.
Mein code: mit twig + php programmiert:
PHP Code:
<div class="form-group"> <label for="sex" class=" form-control-label">Geschlecht</label><br> <table> <td><input type="radio" {% if sex == 1 %} checked {% endif %} name ="sex" value="1"> <label style="margin-right: 10 " for="male">Männlich</label></td> <td><input type="radio" {% if sex == 2 %} checked {% endif %} name ="sex" value="2"> <label style="margin-right: 10 " for="female">Weiblich</label></td> <td><input type="radio"{% if sex == 3 %} checked {% endif %} name ="sex" value="3"> <label style="margin-right: 10 " for="diverse">Divers</label></td> <td><input type="radio" {% if sex == 0 %} checked {% endif %} name ="sex" value="0"> <label style="margin-right: 10 " for="nothing">keine Angabe</label></td> </table> </div>
|
|
|
04/27/2020, 16:48
|
#6
|
elite*gold: 0
Join Date: Jun 2013
Posts: 405
Received Thanks: 84
|
Quote:
Originally Posted by {Skrillex}
Danke für eure Antworten. Ich habe jetzt doch radio Button genutzt. Ich habe sowieso meinen kompletten code überarbeitet. Ich nutze nurnoch englische variablen etc.
Mein code: mit twig + php programmiert:
PHP Code:
<div class="form-group">
<label for="sex" class=" form-control-label">Geschlecht</label><br>
<table>
<td><input type="radio" {% if sex == 1 %} checked {% endif %} name ="sex" value="1">
<label style="margin-right: 10 " for="male">Männlich</label></td>
<td><input type="radio" {% if sex == 2 %} checked {% endif %} name ="sex" value="2">
<label style="margin-right: 10 " for="female">Weiblich</label></td>
<td><input type="radio"{% if sex == 3 %} checked {% endif %} name ="sex" value="3">
<label style="margin-right: 10 " for="diverse">Divers</label></td>
<td><input type="radio" {% if sex == 0 %} checked {% endif %} name ="sex" value="0">
<label style="margin-right: 10 " for="nothing">keine Angabe</label></td>
</table>
</div>
|
Ich würde nicht mehr zu Tabellen-Layouts tendieren.
Und das for="sex" in deinem Label-Element bezieht sich immer auf eine Id, nicht auf den name="sex". Da fehlen eigentlich noch Id's. (  )
Und bei deinem Inline-Style margin-right: 10, fehlt eine Einheit (px, vh, vw, em, rem...)
|
|
|
 |
Similar Threads
|
Radio Elite Plus - Mehr als 350 Radio Sender aus aller Welt! Für PC, Smartphone & TV!
02/21/2016 - elite*gold Trading - 42 Replies
http://i.imgur.com/nqLUuza.png
Radio Elite Plus
Zuletzt aktualisiert am 15.11.2015
Letztes Server Update (Datenbank) am 16.11.2015
Dir ist langweilig? Du hast nichts zu tun oder brauchst Motivation? Suchst nach neuen Liedern oder willst einfach mal entspannen und dich zurücklehnen? Mit dem Radio Elite Plus ist das alles möglich und viel mehr!
Mit dem Radio Elite Plus kannst du Sender aus aller Welt empfangen und hören in bester Qualität.*
Auch ist es dir möglich deine eigenen Radio...
|
[B] Push Button [S] 10 e*gold/Button; 25 e*g/psd+Button
09/20/2013 - elite*gold Trading - 4 Replies
Moin,
Hier könnt ihr folgenden Push Button kaufen:
http://i.epvpimg.com/YlrYe.jpg
Pro Button wären das 10e*g, pro Button mit .psd dazu 25e*g.
Wenn ihr einen Button kaufen wollt, schreibt mir eine PN, damit ich den Namen ändern kann, alles hochladen kann und euch dann per Treasure schicken kann. ;)
Schrift kann auch geändert werden. Dazu einfach in der PN schreiben, welche Schrift ihr haben wollt^^
|
Listen2myradio[Auf Radio.fx oder normales Radio]?
05/21/2011 - Main - 2 Replies
Hey leute
Ich hab mir ne woche zeit genommen um mal meinen eigenen Radiosender zu machen. Jetzt gibt es nur mehr eine Frage wie kann ich es auf ein Normales bzw. auf Radio.fx abspielen.
Wers sich anhören mag hier ist der Link: Listen2myradio.com - Get your own FREE online radio!
Pls help!
|
All times are GMT +2. The time now is 09:13.
|
|