Supportnet Computer
Planet of Tech

Supportnet / Forum / Webseiten/HTML

Geburtstagserinnerung auf Homepage





Frage

Hallo! Würde gern [b]Geburtstagserinnerungen [/b]in meine [b]website[/b] einbinden. So das angezeigt wird wie viele Tage noch bis zu den jeweiligen Geburtstagen sind und an dem Geburtstag ein Foto von dem Geburtstagskind angezeigt wird. So oder so ähnlich. Jedenfalls sollen die Besucher sehen können wer Geburtstag hat! Kann mir jemand weiterhelfen?

Antwort 1 von rfb

Zitat:
Geburtstagserinnerungen in meine website
hoppla - wenn du sowas öffentlich zugänglich ins Netz stellst solltest du dir vorher die Zustimmung der Geburtstagskinder holen. Nur auf privaten (lokalen oder passwortgeschützten) Seiten ist das nicht erforderlich.

Zum eigentlichen Problem:
wie liegen die Daten vor, welche Programmiersprachen stehen dir zur Verfügung, über welche Kenntnisse verfügst du, wie/womit erstellst du deine Seite.

Antwort 2 von mary24_04

Hi!

Ich will ja nicht den vollen Namen und die Adresse dazuschreiben. Nur den Spitznamen - und ich frag auch vorher.

Hab kaum Programmierkenntnisse - ein bisschen html. Hab die Seite mit "buddyw" ( so'n Programm mit dem auch vollkommene Idioten ne website hinkriegen) erstellt und über Lycos-Tripod ins Netz gestellt - PHP wird auch unterstützt.
Die Daten hab ich bis jetzt nur in ner Tabelle.

Soll ja auch nix großes sein. Die Seite ist für ne Jugendgruppe und wenn die Leute drauf gucken, wär's doch schön gleich zu sehen wer Geburtstag hat.

Antwort 3 von rfb

hatte sowas mal als Programmierübung:

<html>
<head>
<title>Geburtstagsvorhersage-Seite</title>
<script type="text/javascript">
function birthday() {
var bb=["1.1","neujahr","1.4","Aprilscherz","12.5","keine Ahnung","24.12","Christkind"];
var geb=14;
var kalender=document.getElementById("kalender");
if (kalender) {
if (kalender.firstChild) kalender.removeChild(kalender.firstChild);
var ul=document.createElement("ul");
kalender.appendChild(ul);
with (new Date()) {
var monat=getMonth();
var jahr=getFullYear();
var tag=getDate();
}
var d0=Date.UTC(jahr,monat,tag,9,0,0);
var eintag=86400000;
var b=monat+"."+tag;
var j,bi,t,m,d,d1;
for(j=0; j<bb.length-1; j+=2)
{
bi=bb[j].split(".");
t=bi[0];
m=bi[1]-1;
d=(Date.UTC(jahr,m,t,9,0,0)-d0)/eintag;
d1=(Date.UTC(jahr+1,m,t,9,0,0)-d0)/eintag;
if (Math.abs(d)>Math.abs(d1)) d=d1;
d1=(Date.UTC(jahr-1,m,t,9,0,0)-d0)/eintag;
if (Math.abs(d)>Math.abs(d1)) d=d1;
t=Math.abs(d);
if (t<=geb)
 {
 bi=bb[j+1]+" hat";
 if (d<-2)  bi+='te vor ' + t + ' Tagen Geburtstag';
 if (d>2)   bi+=' in ' + t + ' Tagen Geburtstag';
 if (d==-2) bi+='te vorgestern Geburtstag';
 if (d==2)  bi+=' %FCbermorgen Geburtstag';
 if (d==-1) bi+='te gestern Geburtstag';
 if (d==1)  bi+=' morgen Geburtstag';
 if (d==0)  bi+=' heute Geburtstag';
 var li=document.createElement("li");
 li.appendChild(document.createTextNode(bi));
 ul.appendChild(li);
 }
}

}}
window.onload=function() {
birthday();
}
</script>
</head>
<body>
<h1>Geburtstagsvorhersage-Seite</h1>
<div id="kalender">keiner hat Geburtstag</div>
</body>
</html>


zu ändern sind diese Zeilen:
var bb=["1.1","neujahr","1.4","Aprilscherz","12.5","keine Ahnung","24.12","Christkind"];
var geb=14;


in bb stecken die Geburtstage, geb=14 heißt "alle Geburtstage innerhalb der letzten und kommenden 14 Tage anzeigen" - Zeitraum lässt sich beliebig anpassen, einfach die zahl ändern.

Antwort 4 von Solo

Hi, funktioniert bei mir nicht. Stimmt denn die letzte Zeile?
Müsste sie nicht etwa so lauten?
window.onload = birthday();

Trotzdem wird nicht der heutige Eintrag angezeigt.

Antwort 5 von rfb

Zitat:
window.onload = birthday();
wenn dann ohne (), denn mit den Klammern würde das sofort ausgeführt werden, statt erst nach dem Laden der Seite.

Die von mir gewählte Version mit dem Einfügen in eine anonyme Funktion funktioniert genauso und hat den Vorteil, dass weitere Funktionen einfach eingefügt werden können.

Zu deinem Problem:

ich erhalte mit exakt o.g. Quellcode heute die Anzeige:
Zitat:
keine Ahnung hatte gestern Geburtstag


Was sagt denn die Firefox-Fehlerkonsole zu deinen Änderungen?

Antwort 6 von Solo

Firefox verwende ich nicht, nur IE5.5. Ich habe onload = "birthday()" in den BODY-Tag gepackt, dann funktioniert es.

Antwort 7 von mary24_04

Danke rfb

An genau sowas hatte ich gedacht. SElber hätt ich das wohl nicht hingekriegt.

Antwort 8 von rfb

Und kannst du mir jetzt noch verraten, warum du HTML und JavaScript vermischst, nachdem es im Original gemäß der Forderung nach unobstrusiver Programmierung herrlich getrennt war?
Was du machst ist eine deutliche Codeverschlechterung.

Zitat:
Firefox verwende ich nicht, nur IE5.5
wenn du ernsthaft Seiten entwickeln willst, kommst du - zumal bei der JavaScript-Programmierung - um aktuelle Browser wie Firefox und Opera nicht herum.
IE5.5 ist nun gerade dazu absolut ungeeignet aufgrund der vielen von Microsoft eingebauten Fehler.

Antwort 9 von mary24_04

Hi

rfb danke schon mal dafür!

Kann ich die Schriftgröße oder -farbe verändern?
Habs leider selbst nicht hingekriegt.

Antwort 10 von rfb

Zitat:
Kann ich die Schriftgröße oder -farbe verändern?
mit CSS kein Problem

setze:
<style type="text/css">
* {
margin:0;
padding:0;
}
body {
text-align:left;
font-family:Arial,Verdana,sans-serif;
background-color:black;
color:yellow;
}
h1 {
font-size:129%;
}
ul, li {
font-size:100%;
color:blue;
background-color:#fff;
}
</style>


in die Zeile zwischen
</script>
und
</head>


was das im einzelnen bewirkt und wie du das nach Belieben ändern kannst liest du bitte einfach bei SelfHTML oder CSS4You nach.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: