2017-08-24 4 views
-2

Dies ist das erste PHP-Programm, das ich geschrieben habe. Meine Ajax-Anfragen sehen gut aus und ich bekomme den Status 200 OK, bekomme aber keine Antwort.Warum gibt dieses einfache PHP keine Antwort zurück?

<?php 

class Employee{ 
    private $fn; 
    private $ln; 
    private $dpt; 
    private $ID; 
} 

function newEmployee(){ 
    $employee = new Employee(); 
    $fn = $_POST['firstname']; 
    $ln = $_POST['lastname']; 
    $dpt = $_POST['department']; 
    $id = sprintf('%08d', $GLOBALS['$ID']); 
    $GLOBALS['$ID'] = $GLOBALS['$ID'] + 1; 

    echo "First Name: $employee\nLast Name: $ln\nDepartment: $dpt\nID: $id"; 

    $employee -> fn = $_POST['firstname']; 
    $employee -> ln = $_POST['lastname']; 
    $employee -> dpt = $_POST['department']; 

    $GLOBALS['$employeeArray'][]= $employee; 

    $GLOBALS['$numOfEmployees'] = $GLOBALS['$numOfEmployees'] + 1; 
    $numemployees = $GLOBALS['$numOfEmployees']; 

    echo "First Name: $employee\nLast Name: $ln\nDepartment: $dpt\nID: $id\nNumber of Employees: $numemployees"; 


} 

if(isset($_POST['submit'])) 
{ 
    newEmployee(); 
} 

$employeeArray = array(); 
$ID = 0; 
$numOfEmployees = 0; 

?> 

Wörtlich mein erstes PHP-Programm, also bin ich sicher, es ist etwas dumm. enter image description here enter image description here

+4

es Nähte wie Sie nicht über einen 'Senden' Wert in Ihrem Beitrag so $ _POST [ 'submit'] senden wird isset nicht – MacBooc

+0

Dank was würden Sie vorschlagen? Hinzufügen zum Ajax oder Ändern dieser Bedingung in etwas anderes? – Zachscs

+0

zu mir gibt es nicht wirklich Best Practice von Ihrer Frage, beide sollten funktioniert – MacBooc

Antwort

1

Ihr Code bricht wegen dieser Zeile:

echo "First Name: $employee\nLast Name: $ln\nDepartment: $dpt\nID: $id"; 

Was passiert ist, Sie versuchen, Ihre $employee = new Employee(); als String ausgegeben, wenn es ein Objekt ist. Also bricht PHP hier und will nicht weiter durch den Rest deines Codes gehen.

Vielleicht wollten Sie es so?

echo "First Name: $fn\nLast Name: $ln\nDepartment: $dpt\nID: $id";  

Sie wollen auch den anderen Anruf von $employee in Ihrem zweiten Echo an der Unterseite der Funktion ersetzen.

Wie Macbooc richtig darauf hingewiesen, senden Sie nicht $_POST['submit'] zu Ihrem Formular, vielleicht ändern Sie es so?

if(isset($_POST['submit']))  

->

if(isset($_POST)) 
+0

ansehen können. Ich sehe jetzt, dass ich meine Antwort bearbeitet habe. – IsThisJavascript

+0

Danke für eine großartige Antwort auf eine verhasste Frage (von den Hassern!). – Zachscs

+0

lol schau mal über meinen code ich muss betrunken sein als ich das geschrieben habe! – Zachscs

Verwandte Themen