Próbuję wykonać prośbę Ajax Post do pliku o nazwie "Sendmail.php". Nie mam wskazówki, co jest nie tak, po prostu nie widzę tego.

Działa JS, loguje wartość z wejść, w Chrome Dev Tools widzę, że jest wysyłany do pliku PHP ... Ekran narzędzi Chrome Dev Wpisz opis obrazu tutaj

Jestem trochę zardzewiały, ostatni kod PHP był rok temu.

Poniżej znajdziesz mój kod PHP i JS.

Tree folder (index.html jest głównym plikiem, w którym jest obsługiwany):

enter image description here

PHP:

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
   header('Content-Type: application/json');
   $requestbody = file_get_contents('php://input','r');
   $jsonbody = json_decode($requestbody, true);
   $action = $jsonbody['action'];

    switch($action){
        case "sendMail":
            $name = $requestbody->{'name'};
            $gsm = $requestbody->{'gsm'};
            $mail = $requestbody->{'mail'};
            $msg = $requestbody->{'msg'};
            $response = json_encode( '{"naam":"'.$name.'","gsm":"'.$gsm.'","mail":"'.$mail.'"}');
            echo $response;
            break;
    }
}else{
    http_response_code(405);
    header('Content-Type: application/json');
    $response = '{"error":"request method is not allowed."}';
    echo($response);
}
?>

Js:

function sendMail(){
    console.log(document.getElementById("mail_naam").value);
    console.log(document.getElementById("mail_gsm").value);
    console.log(document.getElementById("mail_mail").value);
    console.log(document.getElementById("mail_msg").value);
    $.ajax({
        method:'POST',
        url:'mail/sendMail.php',
        dataType:'json',
        data: {
            "action":"sendMail",
            "name":  document.getElementById("mail_naam").value,
            "gsm": document.getElementById("mail_gsm").value,
            "mail":document.getElementById("mail_mail").value,
            "msg": document.getElementById("mail_msg").value
        }
    }).done(function(data) {
        console.log("succes")
        console.log(data);
        var result = JSON.parse(data);
        console.log(result)
    });
}
1
Achiel Volckaert 19 luty 2018, 14:10

1 odpowiedź

Najlepsza odpowiedź

Dodałem to, a to działało:

PHP

  if(empty($action) || $jsonbody){ $action = $_POST['action']; }

  switch ($action) {
      case "sendMail":    
          $name = $_POST["name"];
          $gsm =  $_POST['gsm'];
          $mail = $_POST['mail'];
          $msg =  $_POST['msg'];
          mailVraag($mail,$name,$msg);
          mailVraag("achiel@protoware.be","protoware",$msg . "tel:".$gsm ."email: ".$mail);

          $response = json_encode( '{"naam":"'.$name.'","gsm":"'.$gsm.'","mail":"'.$mail.'"}');
          echo $response;
          break;
  }
0
Achiel Volckaert 19 luty 2018, 14:42