Computer – die neusten Beiträge

In Javascript eine Funktion beenden?

Hallo zusammen,

ich habe ein kleine App "Eieruhr" geschrieben, wo man per Button einen Timer startet der 5 Minuten runterzählt und ein Alarm losgeht sobald die 5 Minuten um sind.

Problem: sobald der Timer runtergelaufen ist klingelt zwar der Alarm allerdings kriege ich es nicht hin, dass der Alarm z.B. nach 5 Sekunden aufhört zu klingeln - stattdessen läuft er ganze Zeit weiter bis man die App geschlossen hat.

Hat jemand eine Lösung von euch?

Code:

  <script>
    let alarm = new Audio('snd/alarm.wav');
    let timerStarted = false;
    function startTimer() {
      if (!timerStarted) {
        let startTime = new Date().getTime();
        let fiveMinutes = 1000 * 60 * 5;
        let endTime = startTime + fiveMinutes;
        setInterval(function() {
          let timeLeft = endTime - new Date().getTime();
          if(timeLeft > 0){
            let minutes = timeLeft / (1000 * 60);
            minutes = Math.floor(minutes);
            let seconds = (timeLeft / 1000) % 60;
            seconds = Math.round(seconds);
            seconds = ('0' + seconds).slice(-2);
            let text = '0' + minutes + " : " + seconds;
            timer.innerHTML = text;
          } else {
            alarm.play();
            timer.innerHTML = '00 : 00';
            5000;
           }
        }, 1000);
        timerStarted = true;
      }
    }
  </script>
Computer, programmieren, JavaScript

Warum ist $_POST hier leer?

Hi, arbeite gerade an nem Kontaktformular, welches mit JQuery und Ajax gesendet werden soll. Hier der Code:

let form = $(this);
let actionUrl = "assets/php/contact.php";

$.ajax({
    type: "POST",
    url: actionUrl,
    contentType: "application/json",
    data: form.serialize(),
    success: function (backendError) {
        console.log(backendError);
        errorHandler(backendError);
    },
    error: function () {
        console.log("failure");
        alert("Internal Error occured. Please try again later");
    }
});

hier der PHP Code zum senden:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    try {
        $errors = array();
        $name = "";
        $email = "";
        $human = "";
        $message = "";

        if (empty($_POST["name"])) {
            $errors[] = "name";
        } else {
            $name = $_POST["name"];
        }

        if (empty($_POST["email"])) {
            $errors[] = "email";
        } else {
            $email = $_POST["email"];
        }

        if (empty($_POST["human"])) {
            $errors[] = "human";
        }

        if (empty($_POST["message"])) {
            $errors[] = "message";
        } else {
            $message = $_POST["message"];
        }

        if (count($errors) === 0) {
            $to = "my@email.de";
            $subject = "Kontaktformular - " . $name;
            $message = "";
            $additional_headers = array(
                "From" => $email,
                "Reply-To" => $email,
                "X-Mailer" => phpversion()
            );

            mail($to, $subject, $message, $additional_headers);
            $response["error"] = false;
            echo json_encode($response);
            exit;
        } else {
            $response["error"] = $errors;
            echo json_encode($response);
            exit;
        }
    } catch (Exception $exception) {
        // in Log File Time + Error + IP
        exit;
    }
}

mein Problem: das POST Array is leer. Habs mir mal ganz oben ausgeben lassen, und stand nix drin, obwohl jquery die inputfelder per POST an das PHP File sendet. Ich denke, dass ich irgendwas bei der $ajax methode falsch gemacht habe, und es deshalb net funktioniert. bin am verzweifeln :) danke für jede Hilfe!

Computer, HTML, Webseite, programmieren, JavaScript, AJAX, JQuery, PHP

Meistgelesene Beiträge zum Thema Computer