2016-07-31 16 views
1

Ich habe meinen Code vereinfacht, um das Problem zu isolieren, aber ich kann anscheinend nichts von der $ _POST-Variable in PHP bekommen, nachdem Javascript eine POST-Anfrage gesendet hat. Werfen Sie einen Blick auf diese:

<!DOCTYPE html> 
<html> 
<body> 

<h2>AJAX Test</h2> 

<button type="button" onclick="loadDoc()">Request data</button> 

<p id="demo"></p> 

<script> 
function loadDoc() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     document.getElementById("demo").innerHTML = xhttp.responseText; 
    } 
    }; 
    xhttp.open("POST", "submit.php?name=david", true); 
    xhttp.send(); 
} 
</script> 

</body> 
</html> 

Und das ist submit.php

<?php 
var_dump($_POST); 
if(!empty($_POST)) 
{ 
    $name = filter_var($_POST["name"], FILTER_SANITIZE_STRING); 

    $output = json_encode(array('type'=>'message', 'text'=>$name.', thank you for your email!')); 
    die("$output"); 
} 
?> 

Wenn ich die Taste, um die Antwort drücken ist einfach:

array(0) { } 

Der leere Zustand der _POST Variable .

Ich führe dies auf einem Standard-Setup-MAMP-Server, mit nichts geändert. Was ist los mit dir?

Antwort

1

Sie müssen den Inhaltstyp festlegen:

xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
xhttp.open("POST", "submit.php?name=david", true); 
xhttp.send(); 

By the way, ich bin nicht sicher, dass Ihr

?name=david 

funktionieren würde ...

+0

Danke für Ihre antworte, aber das scheint nicht zu helfen. – Constan7ine

+2

Scratch das, es funktioniert jetzt! – Constan7ine

1

oder einfach können Sie verwenden ajax method in jquery

$(document).ready(function() { 
    $(document).on("submit", "#formID", function(e) { 

     $.ajax({ 
      type: "POST", 
      url: "WhereToPost.php", 
      contentType: false, 
      cache: false, 
      processData: false, 
      async: true, 
      data: new FormData(this), 
      success: function(data) { 
       alert(data); 
      }, 
      error: function() { 
       alert("Error Handeling Here"); 
      } 

     }); 
     e.preventDefault(); 
    }); 
});