php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Editierproblem


 
jOhnny knOx
31-05-2003, 19:51 
 
Beim Editieren seines Userprofils möchte ich, dass der bereits ausgewählte Wert $user[bday_d] selected ist, aber ich wüsste nicht wie das geht, um da noch die ganzen anderen Werte anzeigen zu lassen die im $i in der for-schleife sind.

Der ursprüngliche Code ist dieser ...


echo "<select name='bday_d'>";
for($i=1; $i<=12; $i++) { echo "<option>$i</option>"; }
echo "</select>";

 
Moqui
31-05-2003, 19:54 
 
$bisher_bday=5; // also er hatte bis jetzt am 12. geburtstag

echo "<select name='bday_d'>";
for($i=1; $i<=12; $i++) {

if($i == $bisher_bday) {
echo "<option selected>$i</option>";
} else {
echo "<option>$i</option>";
}
}
echo "</select>";

 
jOhnny knOx
31-05-2003, 20:04 
 
Dankeschön.

 
jOhnny knOx
05-06-2003, 21:09 
 
Habe da noch ein Problem, ich möchte, dass Anfangs nur "--" da steht, also keine Angabe. Desweiteren, dass es dann danach mit den jeweiligen Zahlen anfängt. Zudem sollten die Zahlen von 1-9 eine 0 vorher stehen haben. Wie wäre das möglich ?

 
Moqui
05-06-2003, 21:12 
 
echo "<select name=\"bday\">";

echo "<option selected>---------</option>";

for($i=1; $i <= 31; $i++) {

$f = strval($i);

if(strlen($f) == 1) {
echo "<option>0".$f."</option>";
} else {

echo "<option>$f</option>";
}

}

echo "</select>";


hatte noch was vergessen

 
jOhnny knOx
05-06-2003, 21:31 
 
Okay, vielen Dank.

echo "<select name='bday_d'><option>--</option>";
for($i=1; $i<=31; $i++) { if($i == $user[bday_d]) { $f = strval($i); if (strlen($f) == "1") { echo "<option selected>0".$f."</option>"; } else { echo "<option selected>$f</option>"; } } else { $f = strval($i); if (strlen($f) == "1") { echo "<option>0".$f."</option>"; } else { echo "<option>$f</option>"; } } }
echo "</select>";

 
jOhnny knOx
05-06-2003, 22:02 
 
Eine weitere Frage bezüglich des Geburtsdatum habe ich noch. Wie prüft man, ob z.B. nur der Tag, nur das Monat, nur das Jahr, oder nur der Tag und der Monat, nur der Tag und das Jahr, nur der Monat und das Jahr... usw. eingegeben wurde ? auf ganz einfache Weise, ohne zuviele Zeilen zu verbrauchen, sodass die Daten nur in der Datenbank geupdated werden, wenn auch jedes Optionsfeld eine Zahl hat.

 
Moqui
05-06-2003, 22:42 
 
empty()

 
jOhnny knOx
06-06-2003, 14:58 
 
Das ist doch im Endeffekt das gleiche mit zuvielen Zeilen, außerdem ist die Variable in diesem Fall nur leer, wenn sie "--" heisst.

 
jOhnny knOx
06-06-2003, 17:16 
 
Müsste doch irgendwie möglich sein das auf einfache Weise zu überprüfen, oder ?

 
mrhappiness
06-06-2003, 17:23 
 
so wie Moqui bereits sagte: mit empty (php-funktion, schau halt mal im handbuch)

das musst du halt für jede variable machen die du prüfen willst

 
jOhnny knOx
06-06-2003, 19:02 
 
ich verstehe nicht warum empty, denn "--" wird doch als Wert angesehen.

 
mister_x1
06-06-2003, 19:39 
 
du musst deinen string schon auf das vorhandensein bestimmter zeichen oder zahlen prüfen. da bietet php so einige funktionen (manuel), sonst gib dem user halt vor wie er sein datum einzugeben hat.
kann es sein, daß du dir nix selbst erarbeitest und hier alles erfragst?


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