• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Brauche Hilfe: Kontaktformular

Status
Für weitere Antworten geschlossen.

sunny55

Neues Mitglied
Hallo,

ich bräuchte mal Hilfe bei dem erstellen von einem Kontaktformular. Als blutiger Anfänger in Sachen html und css bin ich gerade am gestalten einer eigenen Page. Darin sollte auch ein Kontaktformular enthalten sein. Nachdem ich bisher alles andere alleine mit diversen Infoseiten geschafft habe, kam ich leider beim Kontaktformular nicht weiter. Ich habe mir also (vorübergehend) ein freies Layout aus dem Netz geholt um es optisch zu verändern und zu verstehen wie so etwas gemacht wird. Leider stören mich dabei die beiden Buttons: Abschicken und Eingabe Löschen. Ich möchte sie so gestalten wie die Menüfelder: kontaktdaten, Anfrage, Aktion. Also die gleiche Grafik als Hintergrund verwenden, bekomme das aber nicht hin. Sind die EIngabefelder und die Abschicken und Eingabe Löschen Buttons miteinander verbunden und müssen erst getrennt werden? Aber wie?
Hier der Code:
html:
Code:
<div id="content">
           
         <h1 style="text-decoration:underline;">Kontakt</h1>
         <form name="tutorial_formular" action="contact_out.php" method="post" >

     <fieldset class="kontaktdaten">
        <legend>Kontaktdaten</legend>
      <label for="vorname" accesskey="1">Vorname</label><input id="vorname" name="FormVorname" type="text" value="" /><br />
      <label for="nachname" accesskey="2">Nachname</label><input id="nachname" name="FormNachname" type="text" value="" /><br />
     <label for="email" accesskey="3">E-Mail</label><input id="email" name="FormEMail" type="text" value=""  />
     </fieldset>

    <fieldset class="anfrage">
       <legend>Anfrage</legend>
    <label for="text">Nachricht</label>
     <textarea id="text" name="FormBemerkung" cols="30" rows="3" onfocus="this.value=''" >Hier können Sie Ihre Nachricht hinterlassen</textarea>
    </fieldset>
     <fieldset class="buttons">
      <legend>Ihre Aktion</legend>
     <input type="submit" value="Abschicken"  class="senden" name="senden" />
     <input type="reset" value="Eigabe löschen" class="senden" name="senden" />
      </fieldset>
                  
        </div>
css:

Code:
/*Kontaktformular*/    
fieldset {
     width: 30em;
     margin: 1.5em auto 1.5em auto;
     display: block;
     font-size: 0.80em;
     border: 1px solid #ddd;
     background-image:url(kontaktfieldset.png);
     clear: both;
     }
   
* html fieldset {padding: 5px;}
     legend {
     background: url(Button02.jpg);
     padding: 4px;
     border: 1px solid #ddd;
     border-right-width: 2px;
     border-bottom-width: 2px;
     margin-bottom: 4px;
     font-weight: bold;
           }

label {
     margin: 5px 0;}

.kontaktdaten label {
     display: block;
     width: 5em;
     float: left;
     }
.anfrage label {
     display: block;
     width: 5em;
     float: left;
     }
                      
input,textarea {
     margin: 3px 0;
     border: 1px solid #d1d1d1;
     background: white;
     padding: 3px 3px;
     } 
                       
input:active input:focus, input:hover { background: url(Button02.jpg)}
  
.buttons {text-align: center;}

a.locationCat{color: #8d8c8c; font-weight: bold;}

.error {
     font: 13px Verdana, Arial, Helvetica, sans-serif;
     color:red;
     font-weight:bold;
}
 

Anhänge

  • Formular.jpg
    Formular.jpg
    65,6 KB · Aufrufe: 8
Versuch's mal damit:

Code:
.senden {
     background: url(Button02.jpg);
     padding: 4px;
     border: 1px solid #ddd;
     border-right-width: 2px;
     border-bottom-width: 2px;
     margin-bottom: 4px;
     font-weight: bold;
           }

oder einfacher, indem du die Definitionen für legend auch für .senden verwendest. Hierzu brauchst du im vorhandenen Code lediglich das rot markierte ergänzen:
legend, .senden {
background: url(Button02.jpg);
padding: 4px;
border: 1px solid #ddd;
border-right-width: 2px;
border-bottom-width: 2px;
margin-bottom: 4px;
font-weight: bold;
}
 
Zuletzt bearbeitet:
Ah, vielen Dank für die Antwort. Ich werde das gleich mal ausprobieren. Gut das es Leute gibt, die einem weiterhelfen können. :lol:
 
Also das hat geklappt mit deinem Vorschlag, jetzt habe ich nur noch ein kleines Problem. Der Text: "Hier können Sie Ihre Nachricht hinterlassen" wird nun nicht mehr angezeigt. Hast du eine Idee warum?
Aktueller Code:
html:

Code:
 <div id="content">
           
         <h1 style="text-decoration:underline;">Kontakt</h1>
         <form name="formular" action="contact_out.php" method="post" >

     <fieldset class="kontaktdaten">
        <legend>Kontaktdaten</legend>
      <label for="vorname" accesskey="1">Vorname</label><input id="vorname" name="FormVorname" type="text" value="" /><br />
      <label for="nachname" accesskey="2">Nachname</label><input id="nachname" name="FormNachname" type="text" value="" /><br />
     <label for="email" accesskey="3">E-Mail</label><input id="email" name="FormEMail" type="text" value=""  />
     </fieldset>

    <fieldset class="anfrage">
       <legend>Anfrage</legend>
    <label for="text">Nachricht</label>
     <textarea id="text" name="FormBemerkung" cols="30" rows="3" onfocus="this.value=''" >Hier können Sie Ihre Nachricht hinterlassen</textarea>
    </fieldset>
     <fieldset class="buttons">
      <legend>Ihre Aktion</legend>
     <input type="submit" value="Abschicken"  class="senden" name="senden" />
     <input type="reset" value="Eigabe löschen" class="senden" name="senden" />
      </fieldset>
                  
        </div>
css:

Code:
/*Kontaktformular*/    
fieldset {
     width: 30em;
     margin: 1.5em auto 1.5em auto;
     display: block;
     font-size: 0.80em;
     border: 1px solid #ddd;
     background-image:url(kontaktfieldset.png);
     clear: both;
     }
   
* html fieldset {padding: 5px;}
     legend {
     background: url(Buttonkontakt.jpg);
     padding: 4px;
     border: 1px solid #ddd;
     border-right-width: 2px;
     border-bottom-width: 2px;
     margin-bottom: 4px;
     font-weight: bold;
           }
           



label {
     margin: 5px 0;}

/*Sendenbuttons etc */
.senden {
     background: url(Buttonkontakt.jpg);
     padding: 4px;
     border: 1px solid #ddd;
     border-right-width: 2px;
     border-bottom-width: 2px;
     margin-bottom: 4px;
     font-weight: bold;
           }
.senden:active, .senden:focus, .senden:hover { 
        color:#e4cf1b;
        background-image: url(ButtonKontakthover.jpg);
        
    }
     

.kontaktdaten label {
     display: block;
     width: 5em;
     float: left;
     }
.anfrage label {
     display: block;
     width: 5em;
     float: left;
     }
                      
input,textarea {
     margin: 3px 0;
     border: 1px solid #d1d1d1;
     background: white;                
     padding: 3px 3px;
     
     } 
                    
input:active, input:focus, input:hover { } /*Schriftfarbe in Eintragefeldern*/
  
.buttons {text-align: center;}


a.locationCat{color: #8d8c8c; font-weight: bold;}

.error {
     font: 13px Verdana, Arial, Helvetica, sans-serif;
     color:red;
     font-weight:bold;
}
Danke für die Hilfe

Gruss Sunny
 
Zuletzt bearbeitet:
Ok, klappt jetzt. Und nun? Kontaktformular ist fertig, aber wie mache ich, dass es auch tatsächlich an eine emailadresse verschickt wird? Dazu habe ich ja noch nichts programmiert. Muss ich das mit php machen? Habe ich irgendwo im Internet gelesen, nur ich kenn mich gar nicht in php aus. Wer kann mir dabei helfen?
Gruss Sunny
 
Der Text: ...."Hier können Sie Ihre Nachricht hinterlassen" wird nun nicht mehr angezeigt.....
Ich kann das aus dem Code-Beispiel nicht entnehmen.
Vielleicht bekommt color, aus einer anderen css-Anweisung, die gleiche Farbe wie background für <textarea>.
Zeige mal einen Link zum klicken.

Zugefügt:
Ich habe deinen letzten Beitrag nicht bemerkt.
Das geht praxistauglich nur mit einem serverseitigen Skript (z.B. php).
Das wurde hier öfter beschrieben (suche nach mailto).
Ansonsten gibt es auch Anbieter, die das für dich übernehmen.

Mit letzterem habe ich keine Erfahrung.
 
Zuletzt bearbeitet:
Mit php so möglicht:

action="contact_out.php" gibt ja die Datei an die beim Absenden geöffnet wird.
Ist das eine andere als die des Forumlars reicht vollgendes aus:
PHP:
<?
 mail("Email des Empfängers", Betreff, Mailtext,"From: Name des Absenders <E-Mail des Absenders");
?>
Die Inhalte des Forumlars werden mit post (method="post") übergeben.
Diese können so ausgelsen werden:
PHP:
<?
$FormName = $_POST['FormName'];
?>
Ist das Beispiel für den Inhalt des Felds "FormName".
Die angewälte Post-Variable ist durch die Zeichen zwischen den zwei ' gekennzeichnet. Diese Zeichen entsprechen denen die bei name="" angegeben wurden.

Falls deine ausführende Datei dieselbe ist wie die des Formulars kannst du eine if-Schleife einfügen:
[PHP[<?
if($_POST['senden']=="Abschicken"){
?>[/php]
Hierbei wird geprüft ob das Formular abgeschickt wurde. Es wird also die geprüft ob der Inhalt des submit-Buttons übergeben wurde. Ist das der Fall wird der Rest in der Klammer ausgeführt.
Die geschweifte Klammer muss am Ende wieder geschlossen werden:

PHP:
<?
if($_POST['senden']=="Abschicken"){

$FormName = $_POST['FormName'];

mail("Email des Empfängers", Betreff, Mailtext,"From: Name des Absenders <E-Mail des Absenders");
}
?>


Edit: Das kann natürlich alles noch erweitert und verbessert werden. Z.b. Prüfung der einzelnen Felder ob sie ausgefüllt wurden oder nicht oder auch sperren von html-Code o.Ä. um die Sicherheit des Empfängers zu gewähren.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben