2016-07-08 11 views
1

Ich habe ein Formular unter Verwendung von PHP und AJAX und bekomme es nicht, warum es nicht funktioniert.bekommen Daten mit Ajax PHP jquery

Mein Code:

ex1.php

<form id="myForm"> 
<p> Firstname: <input type="text" name= "firstName"</p> 
<p> Lastname<input type="text" name = "lastName" id="lastName"</p> 
<p> Password: <input type="password" name= "password" id="myPass"> </p> 
<p> Email: <input type="text" name="email" id="myEmail"></p> 
<p> Age: <input type="text" name="age" id="myAge"> </p> 

<input type="submit" value="submit" id="subm"> 
</form> 

<script> 

$(document).ready(function(){ 
    $("#subm").click(function(){ 

    var firstName = $("#firstName").val(); 
    var lastName = $("#lastName").val(); 
    var password = $("#myPass").val(); 
    var email = $("#myEmail").val(); 
    var age = $("#myAge").val(); 

    var dataString = "Firstname: " + firstName + ", Lastname: " + lastName + ", Email: " + email + " , Password: " + password + "Age: " + age; 

     $.ajax({ 
      type: "POST", 
      url: "ex1Ex.php", 
      data: dataString, 
      cache: false, 
      succes: function(result){ 
       alert(result); 
      } 
    }); 
    }); 
}); 

externFile:

<?php 


$firstName = $_POST['firstName']; 
$lastName = $_POST['lastName']; 
$password = $_POST['password']; 
$email = $_POST['email']; 
$age = $_POST['age']; 
echo 'jsjsjs'; 

?> 

Wenn ich die Werte eingeben, nach dem Drücken der Taste in der Konsole erscheint es

ex1?firstName=a&lastName=ww&password=111&email=a&age=11:59 POST http://local.healix/ex1Ex.php 500 (Internal Server Error) 

Das Problem lem muss mit der Datei ex1Ex.php sein, aber ich verstehe es nicht. Irgendwelche Vorschläge?

+0

überprüfen, ob Sie die URL http zugreifen können. –

+0

ja, ich kann darauf zugreifen –

+1

Ajax-Funktion Erfolg: Funktion ist falsch geschrieben. –

Antwort

1

ändern jquery Funktion wie folgt erwarten.

$(document).ready(function() { 

    $("#subm").click(function (event) { 

     event.preventDefault();  

     var firstName = $("#firstName").val(); 
     var lastName = $("#lastName").val(); 
     var password = $("#myPass").val(); 
     var email = $("#myEmail").val(); 
     var age = $("#myAge").val(); 

     var dataString = "Firstname: " + firstName + ", Lastname: " + lastName + ", Email: " + email + " , Password: " + password + "Age: " + age; 

     $.ajax({ 
      type: "POST", 
      url: "ex1Ex.php", 
      data: dataString, 
      cache: false, 
      success: function (result) { 
       alert(result); 
      } 
     }); 
    }); 
}); 

Ich glaube, Sie haben die Standard-PHP-Formular-Vorlage event.preventDefault();

auch mit verhindern, bitte die Rechtschreibfehler korrigieren; Sie haben Erfolg geschrieben: statt Erfolg: //local.healix/ex1Ex.php direkt im Browser:

+0

Die Warnung ist gut, aber es setzt die Werte nicht. es gibt keine Werte –

+0

Sie haben nur '' jsjsjs'' geantwortet, sehen Sie das? – RiggsFolly

+0

Wie Sie in Ihrer Frage erwähnt haben, sollte beim Klicken auf die Schaltfläche "jsjsjs" in der Warnung angezeigt werden. –

0

Ich denke, das Problem mit Schlüsseln, die Sie beim Posten in Ajax Anfrage z. B. verwendet haben. für die ersten seinen „Vornamen“ nennen und Sie mit der Taste ‚Vornamen‘

php-post-Array zugreifen Groß- und Kleinschreibung

1

Sie Ihre Daten Pass in einem Objekt .ajax mit dem schön es in die befassen Umwandlung $_POST Array. Sie müssen auch Dont durch Zwischen deklarierten Variablen gehen, um die Daten erhalten direkt aus dem DOM direkt in die Dateneigenschaft des .ajax Anrufs

$(document).ready(function(){ 
    $("#subm").click(function(e){ 
     // stop the form submitting in the normal way as well as through AJAX 
     e.preventDefault(); 

     $.ajax({ 
      type: "POST", 
      url: "ex1Ex.php", 
      data: {Firstname: $("#firstName").val(), 
        Lastname: $("#lastName").val(), 
        Email: $("#myEmail").val(), 
        Password: $("#myPass").val(), 
        Age: $("#myAge").val() 
        }, 
      //cache: false, 
      success: function(result){ // spelling corrected 
       alert(result); 
      } 
     }); 
    }); 
}); 

Dann nicht vergessen, dass, was auch immer der Name, den Sie für jeden Parameter in der JavaScript verwenden ist der Name, die so in dem $ _POST-Array verwendet werden, wenn Sie Firstname in JavaScript verwenden, sollten Sie eine $_POST['Firstname'] (Groß- und Kleinschreibung)

<?php 
$firstName = $_POST['Firstname']; 
$lastName = $_POST['Lastname']; 
$password = $_POST['Password']; 
$email = $_POST['Email']; 
$age = $_POST['Age']; 
//echo "I received: $firstName, $lastName, $password, $email, $age"; 
// or better still while testing 
echo json_encode($_POST); 
?> 
+0

'cache: false' wird nicht benötigt, da es sich um eine' POST' Anfrage handelt. – War10ck

+0

@ War10ck Gotcha, das hatte ich verpasst, danke – RiggsFolly