php.de

Zurück   php.de > Webentwicklung > HTML, Usability und Barrierefreiheit

HTML, Usability und Barrierefreiheit Themen rund um Textauszeichnung, Formatierung, Barrierefreiheit und Usability.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.09.2005, 17:07  
Gast
 
Beiträge: n/a
Standard [Erledigt] Funktion automatisch ausführen

Hallo zusammen!

Ich hab eine Javascriptfunktion, die das Alter berechnet.
Man gibt einfach das Geburtsdatum in ein Formular ein und schon erscheint im Feld darunter das Alter.
Soweit sogut, aber in meinem Programm kann man auch Einträge bearbeiten. Wenn man also das Geburtsdatum ändert, dann ändert sich auch das Alter, logisch, ABER wenn man einen Datensatz öffnet, erscheint nichts im Feld Alter (erst wenn man das Geburtsdatum wieder ändert).
Nun ist das aber ziemlich blöd, wenn man jedesmal das Geburtsdatum eingeben muss, wenn man wissen will wie alt jemand ist (wenn man nicht Kopfrechnen will :wink: ), also möchte ich, dass die Funktion automatisch ausgeführt wird. Also: sobald man einen Datensatz öffnet (mit Geburtsdatum usw) soll das Alter berechnet werden (Funktion) damit man es gleich sieht.

Ich hab viel rumgesucht im Web, bin auf sowas wie onLoad gestoßen, hat aber nicht funktioniert, ist onLoad überhaupt das richtige hier, oder gibt es eine bessere Lösung?

Vielen Dank im Vorraus für jede Antwort!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.09.2005, 17:36  
XLB
Erfahrener Benutzer
 
Registriert seit: 31.07.2005
Beiträge: 1.126
PHP-Kenntnisse:
Fortgeschritten
XLB
Standard

Mit "onLoad" - würd's scho gehen.

Geht's um die Funktion "alter()" aus diesem Thread ?

Was hast du denn bis jetzt gemacht (Aufruf der Funktion via onLoad?) ?
XLB ist offline   Mit Zitat antworten
Alt 22.09.2005, 08:55  
Gast
 
Beiträge: n/a
Standard

Ja, um die geht's!
Ich hab sie anfangs (so funktioniert alles) mittels onChange() aktiviert, sobald man etwas in einem der Geburtstagsfelder ändert (sind 3 - Tag, Monat, Jahr) wird die Funktion aufgerufen.
Code:
<td>

Geb. Datum</p></td>
<td><input size="4" type="Text" name="GEB_DATUM_tag" value="<?=$GEB_DATUM[2]?>" maxlength="2" onChange="alter()">
<input size="4" type="Text" name="GEB_DATUM_monat" value="<?=$GEB_DATUM[1]?>" maxlength="2" onChange="alter()">
<input size="4" type="Text" name="GEB_DATUM_jahr" value="<?=$GEB_DATUM[0]?>" maxlength="4" onChange="alter()">
<font size="2">Tag / Monat / Jahr</font>
Mit onLoad() hab ich's so probiert:
Code:
<td>

Alter</p></td>
<td><input type="text" name="ALTER" size="5" value="" readonly="readonly" onLoad="alter()"></td>
Hat aber nicht funktioniert, und wenn man auf aktualisieren klickt, werden auch noch der Tag und der Monat gelöscht (das Jahr bleibt, hat wohl mit der Funktion zu tun, die Jahre werden ja berechnet bei mir)
Schätze ich hab das onLoad() falsch eingebaut, oder?
Wie gehört das richtig?
  Mit Zitat antworten
Alt 22.09.2005, 09:02  
Gast
 
Beiträge: n/a
Standard

Habe nicht wirklich Ahnung von JS, aber wird nicht onLoad() in den BODY-Tag eingesetzt ?
Kann mich jetzt auch irren ...
  Mit Zitat antworten
Alt 22.09.2005, 09:21  
Gast
 
Beiträge: n/a
Standard

DANKE!
Genau das war's!

Jetzt hab ich die Funktion noch etwas erweitert (in dem Programm soll man auch "alte" Einträge machen können, also von Leuten die schon verstorben sind - sozusagen eine Stammbaummöglichkeit).
Man kann also nun auch das Todesdatum von Personen eingeben, und da soll jetzt wieder das Alter berechnet werden. Ich hab also einfach die Funktion etwas erweitert, damit das so auch berechnet wird, leider stimmt das Ergebnis aber nicht immer. Wenn man zB am 25.07.1984 geboren ist und am 25.07.2005 gestorben ist, dann ist man 21 gewesen -> korrekt, wenn man aber am 24.07.2005 gestorben ist, dann ist man erst 20 gewesen, bei meiner Funktion allerdings schon 21. Ich hab also irgendwo einen "Denkfehler" in der Funktion drin...
Kann mir jemand helfen den zu finden?
Die Funktion sieht so aus:
Code:
// Funktion, die das Alter in Jahren berechnet
				function alter()
				{
					var alter = 0;
					var G_tag = parseInt(document.FORMULAR.GEB_DATUM_tag.value);
					var G_monat = parseInt(document.FORMULAR.GEB_DATUM_monat.value);
					var G_jahr = parseInt(document.FORMULAR.GEB_DATUM_jahr.value);
					
					var T_tag = parseInt(document.FORMULAR.TOD_DATUM_tag.value);
					var T_monat = parseInt(document.FORMULAR.TOD_DATUM_monat.value);
					var T_jahr = parseInt(document.FORMULAR.TOD_DATUM_jahr.value);

					var H_datum = new Date();
					
					var H_tag = H_datum.getDate();
					var H_monat = H_datum.getMonth();
					var H_jahr = H_datum.getYear();

					if(!T_jahr)
					{
						alter = H_datum.getYear() - G_jahr;

						if(G_monat > H_monat)
						{
							alter = alter - 1;
						}
						else if(G_monat == H_monat)
						{
							if(G_tag > H_tag)
							{
								alter = alter - 1;
							}
						}
					}
					else
					{
						alter = T_jahr - G_jahr;
						
						if(G_monat > T_monat)
						{
							alter = alter - 1;
						}
						else if(G_monat == T_monat)
						{
							if(G_tag > T_tag)
							{
								alter = alter - 1;
							}
						}	
					}
					
	 				document.FORMULAR.ALTER.value = alter;
				}
  Mit Zitat antworten
Alt 22.09.2005, 09:26  
Gast
 
Beiträge: n/a
Standard

Wie gesagt, ich habe »Null Plan« von JS, aber solche Berechnung sollte man mit Timestamp machen.
Keine Ahnung ob es sowas auch im JS gibt.
  Mit Zitat antworten
Alt 22.09.2005, 09:41  
Gast
 
Beiträge: n/a
Standard

Tja, deshalb hab ich ja grad HIER gepostet, damit ich Hilfe bei JAVASCRIPT bekomme...
  Mit Zitat antworten
Alt 22.09.2005, 09:45  
Gast
 
Beiträge: n/a
Standard

Das Leben kann so einfach sein:

http://www.google.de/search?hl=de&q=...chnen%22&meta=
  Mit Zitat antworten
Alt 22.09.2005, 10:45  
Gast
 
Beiträge: n/a
Standard

Naja, einfach ist relativ ...
Der Link hat mir eigentlich nichts gebracht, alle Funktionen die dort geschrieben worden sind, sind entweder in php oder wahnsinnig komplex gewesen... trotzdem danke für die Mühe.

Ich hab also probiert und probiert... mal diese Variable ausgeben lassen und mal jene... und dann hab ich das Problem gefunden!

Wenn man sein Geburtsdatum in diesem Format eingibt geb 23.9.1984 ist man 20 Jahre alt -> korrekt!
ABER: wenn man sein Geburtsdatum in diesem Format eingibt geb 23.09.1984 ist man 21 Jahre alt -> falsch!

Das liegt daran, dass die Varable für den aktuellen Monat 9 ist, und die für das Geburtstagsmonat 0 ist!
Tja, jetzt kenn ich zwar den Fehler, und ich könnte einfach hinschreiben, dass der User keine "0" bei einstelligen Zahlen schreiben darf, aber das ist nicht das was ich will (außerdem schreib ich es ja selber auch immer mit "0" :wink: )

Meine Frage also:
Wie kann ich die 09 (oder 08, oder 07,...) in der Funktion zu einer 9 (oder 8, oder 7,...) machen, also den Nuller wegstreichen?
In php würd ich das vermutlich mit explode() machen, aber wie in javascript?

Danke im Vorraus für Antworten!
  Mit Zitat antworten
Alt 22.09.2005, 11:39  
Gast
 
Beiträge: n/a
Standard

das dürfte das sein was du suchst
http://de.selfhtml.org/javascript/ob...gig.htm#number
  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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
Bei mail() Funktion automatisch "Signatur" anhänge WTB PHP Tipps 2006 14 15.05.2006 13:13
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
[Erledigt] Array-Übergabe in Funktion PHP Tipps 2005 1 08.05.2005 21:05
Class -- Funktion Creativ PHP Tipps 2005 2 30.03.2005 23:10
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
[Erledigt] Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
wie alt ist man wenn man 1984 geboren ist, http://www.php.de/html-usability-und-barrierefreiheit/31270-erledigt-funktion-automatisch-ausfuehren.html, javascript in php automatisch ausführen, php automatische funktion, php aktion automatisch ausführen, onload zwei funktionen ausführen php, php funktion automatisch ausführen, php automatisch ausführen, beim aufrufen einer klasse etwas automatisch ausführen, php klassen immer ausführen, 1984 wie alt ist man dann, php funktion automatisch aufrufen, klasse funktion automatisch aufrufen php, php formular automatisch ausführen, php ant build ausführen, php onload ausführen, onchange=\ geburtsdatum, html automatisch link öffnen, php datum von bild auslesen, php formular automatisch java ausführen

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.