djheke
... und sie dreht sich doch - na ja, öffnet sich ... und das ohne JS!
Gutes Ding.
Beiträge von Sailor
-
-
Tja... dann viel Erfolg beim Ausprobieren! Aber bei CSS fällt mir zum Einblenden wirklich nur hover ein, aber das wirkt ja nur so lange, wie die Maus drauf zeigt.
Ich denke fast, ohne JS wird das nicht elegant zu lösen seiin.
Unelegant könntest du die Seite 2 mal haben.. eine mit, eine ohne die Box, die sich beim Klick auf den Link gegenseitig aufrufen - aber bei so einer Lösung sträuben sich mir die Nackenhaare.Aber vielleicht fällt jemandem ja noch was machbares ein.
-
Das wirst du mit HTML und CSS alleine nicht schaffen - da brauchst du auch etwas JavaScript.
Versuche es mal so in dieser Art:
HTML
Alles anzeigen<!DOCTYPE html> <html lang="de"> <head> <script> function toggledisplay(elementID) { (function(style) { style.display = style.display === 'none' ? '' : 'none'; })(document.getElementById(elementID).style); } </script> <style type="text/css"> <!-- p { font-size: 2em; border: 2px solid #000000; border-radius: 3 px; width: 15em; text-align: center; } --> </style> </head> <body> <a href="#" title="Zeige Garantiebedingungen" onClick="toggledisplay('an_aus');">Garantiebestimmung</a> <p id="an_aus" class="garantie_box">Das ist ein Test</p> </body> </html>
-
Viel Erfolg - sieht vielversprechend aus!
-
Bitte - gern geschehen! Dafür ist so ein Hilfeforum ja da.
Aber wo ich schon mal beim Helfen bin... das korrekte Format für eine Mailfunktion ist..PHP
Alles anzeigen<?php $empfaenger = 'niemand@example.com'; $betreff = 'Der Betreff'; $nachricht = 'Hallo'; $header = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($empfaenger, $betreff, $nachricht, $header); ?>
So ganz stimmt da deine Mailroutine noch nicht - und testen musst es sowieso, wenn diene Mails nicht ankommen, dann hast du wenigstens eine Ahnung woran es liege könnte. -
Oder meinst du das hier...
- - - Aktualisiert - - -
In der EMail...
sendest du ja auch den Text '$usermessage' mit dem $betreff vin 'Stafanie' an $email.
Aber mit der Ergänzung, die ich dir weiter oben geschickt habe, ist der Name jetzt in $usermessage drin. -
Bestens... braucht aber alles seine Zeit! Mal eben schnell einen 'fremden' Code debuggen geht meistens schief!
Noch ein Vorschlag zur Verbesserung... kannst du was einbauen, dass die Seite nach dem Senden nicht gleich wieder in der Top-Position bleibt, sondern beim Mailformular bleibt, so dass man das Ergebnis auch gleich sieht - ohne Runterscrollen?- - - Aktualisiert - - -
Name?... welcher Name?... wo soll der ausgegeben werden?
-
.. den Kommentar im Code weiter unten mit der Meldung 'Mail konnte nicht gesendet werden' kannst du löschen! Funktioniert so nicht, aber vielleicht bekommst du das ja noch hin!
War so gedacht...
Kein Fehler in $POST Daten und kein Fehler beim Mailversand -> Danke Meldung
Kein Fehler in $POST Daten und Fehler beim Mailversand -> Meldung Mail konnte nicht gesendet werden
Fehler in $POST Daten -> EinzelfehlermeldungAnsonsten werden leere Eingabefelder schon von HTML aufgefangen - solltest deine Prüfroutine trotzdem drin lassen, weil es auch Browser gibt, die noch kein HTML5 können - und deine EMail-Adressenprüfung funktioniert besser als die von HTML%.
-
Habe deinen Code bei mir an Laufen bekommen... also noch ein Versuch!
Hier ist eine eine Fehlerabfrage zum erfolgreichen Mailversand ( if(mail...) eingebaut - und der Fehler mit den von Anfang an erscheinenden Fehlermeldungen sollte auch weg sein.PHP
Alles anzeigen<?php header('Content-Type: text/html; charset=ISO-8859-1'); if (!empty ($_POST)) { $errors = array(); $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $betreff = $_POST['betreff']; $message = $_POST['message']; $usermessage = $message."\n\nTelefonnummer:".$phone; if(empty($name)){ $errors[] = '<p class="error">Bitte geben Sie Ihren Namen oder Ihre Firma ein.</p>'; } if(empty($email)){ $errors[] = '<p class="error">Bitte geben Sie eine Email-Adresse an.</p>'; } else if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ $errors[] = '<p class="error">Bitte geben Sie eine gültige Email-Adresse an.</p>'; } if(empty($phone)){ $errors[] = '<p class="error">Bitte geben Sie eine Telefonnummer an.</p>'; } if(empty($betreff)){ $errors[] = '<p class="error">Bitte geben Sie einen Betreff an.</p>'; } if(empty($message)){ $errors[] = '<p class="error">Bitte geben Sie Ihre Nachricht ein.</p>'; } if (empty($errors)) { if(mail('Stefanie.Wolf96@gmx.de', $betreff, $usermessage, 'From: ' . $email)) {$mail_error=0;} else {$mail_error=1;} } else {$mail_error=1;} } ?> <!DOCTYPE html> <html> <head> <title>Zimmerei Kohlhepp</title> <meta charset="ISO-8859-1"> <link rel="shortcut icon" type="image/x-icon" href="Bilder/favicon.ico"> <link rel="stylesheet" href="style.css" type="text/css" /> <link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'> <link href='http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:400,200,300,700' rel='stylesheet' type='text/css'> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> $(function() { var pull = $('#pull'); menu = $('nav ul'); menuHeight = menu.height(); $(pull).on('click', function(e) { e.preventDefault(); menu.slideToggle(); }); $(window).resize(function(){ var w = $(window).width(); if(w > 320 && menu.is(':hidden')) { menu.removeAttr('style'); } }); }); </script> </head> <body> <div class="oben"> <header> <a href="index.html"><img src="Bilder/Logo.jpg"></a> <h1>Zimmerei Kohlhepp</h1> </header> <nav class="clearfix"> <ul class="clearfix"> <li><a href="index.html">Start</a></li> <li><a href="Ueber_uns.html">Über uns</a></li> <li><a href="Leistungen.html">Leistungen</a></li> <li><a href="Kontakt.php"class="active">Kontakt</a></li> </ul> <a href="#" id="pull">Menü</a> </nav> </div> <section class="main"> <div class="braun"> <h2 class="Unterseiten">Kontakt</h2><section id= "banner"> <img class="Banner" src="Bilder/Banner.jpg"> </section> <div class="gerne"> <article> <p>Zimmerei Kohlhepp GmbH & Co.KG Neudorfer Str. 22 97797 Wartmannsroth / Schwärzelbach<br> Tel.: 09737 / 240 | Fax: 09737 / 319 | Email: info[at]zimmerei-kohlhepp.de</p> </article> </div> <div class="Kontaktartikel"> <article> <p> Kontaktieren Sie uns per E-Mail !</p> </article> </div> <div class="beige_Kontakt"> <form action="Kontakt.php" method="post"> <p> <label for="name">Name:</label> <input type="text" name="name" id="name" <?php if(isset($_POST['name']) === true){ echo 'value="', strip_tags($_POST['name']) ,'"';} ?> required> </p> <p> <label for="email">Email:</label> <input type="email" name="email" id="email" <?php if(isset($_POST['email']) === true){ echo 'value="', strip_tags($_POST['email']) ,'"';} ?> required> </p> <p> <label for="phone">Telefon:</label> <input type="text" name="phone" id="phone" <?php if(isset($_POST['phone']) === true){ echo 'value="', strip_tags($_POST['phone']) ,'"';} ?>required> </p> <p> <label for="betreff">Betreff:</label> <input type="text" name="betreff" id="betreff" <?php if(isset($_POST['betreff']) === true){ echo 'value="', strip_tags($_POST['betreff']) ,'"';} ?> required> </p> <p> <label for="message">Nachricht:</label> <textarea name="message" id="message" required><?php if(isset($_POST['message']) === true){ echo strip_tags($_POST['message']); } ?></textarea> </p> <p> <input type="submit" value="Senden"> </p> </form> <?php if (isset($mail_error) and $mail_error==0) { echo '<p class="Danke">Danke, dass Sie uns kontaktiert haben.</p>'; } /* else { if(!isset($errors)) { echo '<p class="Danke">Mail konnte nicht gesendet werden.</p>'; } }*/ else if (isset($errors) && count($errors) > 0) { echo '<ul>'; foreach($errors as $error) { echo '<li> ' . $error . '</li>'; } echo '</ul>'; } ?> </div> </div> </div> </section> <div class="Impressum"> <footer> <ul> <li><a href="Impressum.html" >Impressum</a></li> </ul> </footer> </div> </body> </html>
.. in dem <form> Tag nuss ggf noch die richtige URL angegeben werden
-
Versuche mal diesen Code:
HTML
Alles anzeigen<?php header('Content-Type: text/html; charset=ISO-8859-1'); if (empty ($_POST) === false) { $errors = array(); $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $betreff = $_POST['betreff']; $message = $_POST['message']; $usermessage = $message."\n\nTelefonnummer:".$phone; } if(empty($name)){ $errors[] = '<p class="error">Bitte geben Sie Ihren Namen oder Ihre Firma ein.</p>'; } if(empty($email)){ $errors[] = '<p class="error">Bitte geben Sie eine Email-Adresse an.</p>'; } else if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ $errors[] = '<p class="error">Bitte geben Sie eine gültige Email-Adresse an.</p>'; } if(empty($phone)){ $errors[] = '<p class="error">Bitte geben Sie eine Telefonnummer an.</p>'; } if(empty($betreff)){ $errors[] = '<p class="error">Bitte geben Sie einen Betreff an.</p>'; } if(empty($message)){ $errors[] = '<p class="error">Bitte geben Sie Ihre Nachricht ein.</p>'; } if (empty($errors)) { mail('Stefanie.Wolf96@gmx.de', $betreff, $usermessage, 'From: ' . $email); header('Location: Kontakt.php?sent'); } ?> <!DOCTYPE html> <html> <head> <title>Zimmerei Kohlhepp</title> <meta charset="ISO-8859-1"> <link rel="shortcut icon" type="image/x-icon" href="Bilder/favicon.ico"> <link rel="stylesheet" href="style.css" type="text/css" /> <link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'> <link href='http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:400,200,300,700' rel='stylesheet' type='text/css'> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> $(function() { var pull = $('#pull'); menu = $('nav ul'); menuHeight = menu.height(); $(pull).on('click', function(e) { e.preventDefault(); menu.slideToggle(); }); $(window).resize(function(){ var w = $(window).width(); if(w > 320 && menu.is(':hidden')) { menu.removeAttr('style'); } }); }); </script> </head> <body> <div class="oben"> <header> <a href="index.html"><img src="Bilder/Logo.jpg"></a> <h1>Zimmerei Kohlhepp</h1> </header> <nav class="clearfix"> <ul class="clearfix"> <li><a href="index.html">Start</a></li> <li><a href="Ueber_uns.html">Über uns</a></li> <li><a href="Leistungen.html">Leistungen</a></li> <li><a href="Kontakt.php"class="active">Kontakt</a></li> </ul> <a href="#" id="pull">Menü</a> </nav> </div> <section class="main"> <div class="braun"> <h2 class="Unterseiten">Kontakt</h2><section id= "banner"> <img class="Banner" src="Bilder/Banner.jpg"> </section> <div class="gerne"> <article> <p>Zimmerei Kohlhepp GmbH & Co.KG Neudorfer Str. 22 97797 Wartmannsroth / Schwärzelbach<br> Tel.: 09737 / 240 | Fax: 09737 / 319 | Email: info[at]zimmerei-kohlhepp.de</p> </article> </div> <div class="Kontaktartikel"> <article> <p> Kontaktieren Sie uns per E-Mail !</p> </article> </div> <div class="beige_Kontakt"> <form action="Kontakt.php?Sent=1" method="post"> <p> <label for="name">Name:</label> <input type="text" name="name" id="name" <?php if(isset($_POST['name']) === true){ echo 'value="', strip_tags($_POST['name']) ,'"';} ?> required> </p> <p> <label for="email">Email:</label> <input type="email" name="email" id="email" <?php if(isset($_POST['email']) === true){ echo 'value="', strip_tags($_POST['email']) ,'"';} ?> required> </p> <p> <label for="phone">Telefon:</label> <input type="text" name="phone" id="phone" <?php if(isset($_POST['phone']) === true){ echo 'value="', strip_tags($_POST['phone']) ,'"';} ?>required> </p> <p> <label for="betreff">Betreff:</label> <input type="text" name="betreff" id="betreff" <?php if(isset($_POST['betreff']) === true){ echo 'value="', strip_tags($_POST['betreff']) ,'"';} ?> required> </p> <p> <label for="message">Nachricht:</label> <textarea name="message" id="message" required><?php if(isset($_POST['message']) === true){ echo strip_tags($_POST['message']); } ?></textarea> </p> <p> <input type="submit" value="Senden"> </p> </form> <?php if (isset($_GET['sent']) === true) { echo '<p class="Danke">Danke, dass Sie uns kontaktiert haben.</p>'; } else if (isset($errors) && count($errors) > 0) { echo '<ul>'; foreach($errors as $error) { echo '<li> ' . $error . '</li>'; } echo '</ul>'; } ?> </div> </div> </div> </section> <div class="Impressum"> <footer> <ul> <li><a href="Impressum.html" >Impressum</a></li> </ul> </footer> </div> </body> </html>
Ich kann den bei mir leider nicht testen... abe da sind die Änderungen drin, die ich versuchen würde.- - - Aktualisiert - - -
Ich seh gerade ... in meinem Code müsste man noch die Error-Behandlung bei
HTMLif (isset($_GET['sent']) === true) erweitern in if (isset($_GET['sent']) === true and empty($errors))
Sonst kommt die Danke-Meldung auch, wenn ein Fehler aufgetreten ist!
-
ahhh... ich glaube, jetzt hab ich deinen Fehler!
Der 'header(...' Befehl muss immer erfolgen, bevor irgendwas zum Browser gesendet wurde.https://secure.php.net/manual/de/function.header.php
und wenn ich das richtig sehe, dann rufst du die header-Funktion gleich zwei mal auf, nachdem du schon Inhalt übermittelt hast.
-
Mir fällt da noch etwas auf.
An welcher Stelle sendest du den GET Parameter 'Sent'?
Direkt in deinem 'if(...' mit dem mail-Versand hast du ein exit() stehen. Wenn ich mich nicht täusche, dann wird die Verarbeitung weiteren Codes damit unterbunden... hmmm... wo soll dann eine Versandmeldung herkommen? -
Da ich bei dem zweiten Beispiel nicht den PHP Code sehen kann, kann ich keinen Unterschied erkennen!
Aber überprüfe doch mal bitte die folgende Zeile in deinem Code:
sollte das nicht
heißen? -
Hallo,
Ich kann anhand der Fehlerbeschreibung nicht zweifelsfrei erkennen, was das Problem ist!
Erstens... die Seite leitet nicht automatisch weiter, sondern erst dann, wenn man auf 'Senden' klickt - oder?
Wenn man das tut, wird die Seite aufgerufen, die als 'action' im Formular-tag steht.. da steht bei dir nix!!! ..<form action="" method="post">...
Du gibst an, dass du eine Weiterleitung auf 'Kontakt.php?sent' erwartest! Das '?' signalisiert allerdings, dass ein GET-Parameter übergeben wird - in der Form-Anweisung spezifizierst du allerdings 'POST' als Methode!
Bitte mal genau sagen, wo denn dein Problem nun tatsächlich ist? -
Das was der Hersteller angibt sind die Eigenschaften des Displays... wenn du dir einen einen Ultra HD Fernseher mit einer Zeilenbreite von 2160 Pixeln kaufst und schaust dann einen HD Sender, der ja nur 1080 Pixel Breite liefert... hast dann nur den halben Bildschirm? Neee... der Fernseher füllt dann die 2160 Pixel schön mit dem was ihm geboten wird.
Das Beispiel hinkt zwar an allen Ecken, aber es macht das Prinzip klar... dein Handy Display kann irgendwas astronomisches an Auflösung, dein Browser liefert aber nur was realistisches, dann wird das Realistische auf dem Astronomischen angezeigt.
Ach ja, würde mich interessieren, ob das mit dem 'handheld' (=Handcomputer wie Palms oder Mobiltelefone, meist mit monochromen Bildschirmen und geringer Bandbreite) funktioniert?
Und wenn, ob du da noch eine 'and' Angabe machst (@media handheld and (?????) ) und wenn ja, was? Pixel? -
Habe mich noch nicht eingehend mit diesem Thema beschäftigt - aber meine Idee beruht auf dem, was bei http://www.w3school.com (Link siehe weiter oben) sehr anschaulich beschrieben wird.
Bitte geh mal hier hin...
https://www.w3schools.com/howto/tryit.as…ryhow_css_modal
Da links siehst du den Code, der notwendig ist:
Diese CSS Formatierungen könnte man ja so anpassen, wie man es braucht.Das was unter <!-- Trigger/Open The Modal --> zu finden ist, wäre der BUTTON, den du beim Aufruf der mit PHP erzeugt hast und der einen 'Value' entsprechend dem Namen, den du übermitteln willst enthält, nur dass er noch in ein <form> eingepackt sein müsste, weil er soll ja nicht durch JS abgefragt werden, sondern die Seite neu aufrufen und den Namen an den Server geben.
Das Auslesen des Namens und das daraus folgende Produzieren des Codes musst du dann natürlich in deiner Datei einbauen ... if(isset($POST['name']...bla bla bla...
mit dem bla bla kannst du dann sowohl das ausgeben, was bei w3school unter <!-- Modal content --> steht
und natürlich den Script selbst, nur dass dieser jetzt nicht mehr mit einem 'onclick' angesprochen wird, sonder direkt ausgeführt werde soll (also keine 'funktion' sondern direkt mit <Script> </Script> im Quellcode.
Aber wie gesagt, alles nur eine Idee. Ausprobiert habe ich es noch nicht!
-
DetlefM
Ich schicke dir mal den Link zu meiner HP als PM! Dann kannst du prüfen, ob das mit deinem Handy klappt oder nicht!
Einverstanden? -
Ich würde einen anderen Weg gehen. Die Seite wird ja von PHP ausgeliefert, mit den eingelesenen Daten. Dann ist es doch ein Arbeitsgang, wenn du gleichzeitig diese Buttons erstellen lässt, für jeden Namen einen. Als Value jeweils mit dem ausgelesen Namen des zugehörigen Feldes.
Der Name wird dann beim Klicken übergeben, wird vom Server aus ausgelesen und die Seite dann mit einem Aufruf einer JavaScript Funktion an den Browser ausgeliefert. Und diese JavaScript Funktion erzeugt dir deine Box - oder mache ich da einen Denkfehler? -
Ich denke, da wirst du mit PHP alleine nicht klar kommen.
Schau mal in diesen Link... https://www.w3schools.com/howto/howto_css_modals.asp -
@LinuxMan
Hast du mal nachgeschaut, welche Auflösung (Breite x Höhe) der Browser deines Smartphone mit HD Display denn tatsächlich hat?
Schau dir mal die Liste hier weiter unten an!
http://www.blog.tocki.de/2011-06-29/lis…iler-endgerate/Ich weiß es nur von meinem Handy, einem Samsung mit 5'' Display - hier ist nominell angegebene Pixelzahl des Display deutlich höher, als das, was der Browser anschließend tatsächlich darstellt.
Zu deinem Beispiel mit https://www.coinbase.com/ - die machen das genau so! Pixelbasiert! Nur dass die ihre Weiche mit der @media query in einem Stylesheet unterbringen. Kannst es dir ja mal selbst anschauen!
Und ja, diese Änderungen am Layout gehen genau so... großes Display mit vielen Pixeln - Menü links... mittleres Display mit weniger Pixeln - Menü oben.. kleines Display mit wenig Pixeln - kein Menü, stattdessen diese 3Balken zum Anklicken.