2017-10-10 1 views
0

Dies ist mein erster Beitrag hier. Entschuldigung, wenn mein Englisch schlecht zu sein scheint.

Ich habe versucht, die folgenden Codes zu verwenden, um Formulardaten an meine Anmeldung/submit/index.php zu senden.

Hier ist meine HTML-Beispiel

<form name="signup_form" id="signup_form" action="submit"> 
    <input type="text" class="form-control" placeholder="CreateUsername" name="username" id="username" autocomplete="off"> 
<input type="password" class="form-control" placeholder="CreatePassword" name="password" id="password"></form> 

Hier ist meine Ajax

.on('success.form.fv', function(e) { 

     e.preventDefault(); 


     loadshow(); 

     var $form = $(e.target), 
      fv = $form.data('formValidation'); 

     // Use Ajax 
     $.ajax({ 
      url: $form.attr('action'), 
      type: 'POST', 
      data: $('#signup_form').serialize(), //or $form.serialize() 
      success: function(result) { 
       // ... Process the result ... 
       //alert(result); 
       if (result=="2") 
       { 
       swal({ 
        type: "success", 
        title: "HiHi!", 
        text: "GoodLuck", 
        animation: "slide-from-top", 
        showConfirmButton: true 
        }, function(){ 

        var username = $("#username").val(); 
        var password = $("#password").val(); 
        functionA(username,password).done(functionB); 

       }); 



       } 
       else (result=="agent_na") 
       { 
       swal({ 
        type: "error",  
        title: "ERROR", 
        text: "N/A", 
        animation: "slide-from-top", 
        showConfirmButton: true 
       }); 

Hier mein PhP

<?php 
    $params = array(); 
$gett = $_POST["username"]; 
parse_str($gett,$params); 

print_r ($gett); // it prints an empty array 
print_r ($gett); // it prints an empty array 
echo $params["username"] // it shows undefined username index 
?> 

Ich habe parse_str es vor $ gett versuchte zu serialisiert geht. Es gibt mir zurück() {} [].

Könnten Sie mir bitte dabei helfen ?? Ich habe fast 20 Stunden damit verbracht, googlen und viel probiert. Bin neu in JS.

+1

Versuchen Formdata statt serialize 'var formdata = new Formdata ($ ('# signup_form'));' –

+0

HALLO. Danke für deine Antwort!!. Ich habe versucht, aber immer noch ein leeres Array in meinem PHP .. Ich habe immer noch meine Warnung. Bedeutet es AJAX-Erfolg ohne Daten? –

Antwort

1

Ich versuche es

einfach zu halten

HTML

<!-- Include Jquery Plugin --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<form id="signup_form"> 
    <input type="text" name="username" placeholder="Enter the user name" /> 
    <input type="password" name="password" placeholder="Enter password here" /> 
    <input type="submit" value="Login" /> 
</form> 
<script> 
    /* Page loaded */ 
    $(function(){ 
     /* Trigger when the form submitted */ 
     $("#signup_form").submit(function(e) {   
      var form = $(this);   
      $.ajax({ 
       type: "POST", 
       url: "backend.php", 
       data: form.serialize(), // Checkout the document - https://api.jquery.com/serialize/ 
       success: function(data) { 
        // handle the return data from server 
        console.log(data); 
       } 
      }); 
      e.preventDefault(); 
      return false; 
     }) 
    }) 
</script> 

PHP (backend.php)

<?php 
    // Always check param exists before accessing it 
    if(isset($_POST['username']) && isset($_POST['password'])){ 
     // Print all the post params 
     print_r($_POST); 
     // or by param 
     // echo "User Name: " . $_POST['username']. " <br />"; 
     // echo "Password: " . $_POST['username']. " <br />"; 
    } 
?> 

hoffe, das hilft!

0

Dies ist ein Beispiel dafür, wie Sie einen Ajax-Aufruf debuggen können:

Javascript:

$(function(){ 
    $("#signup_form").submit(function(e) {   
     var formData = new FormData($(this));   
     $.ajax({ 
      type: "POST", 
      url: "backend.php", 
      data: formData, 
      success: function(data) { 
       console.log(data); 
       // if (data.length > 0) .... 
      } 
     }); 
     e.preventDefault(); 
     return false; 
    }); 
}); 

PHP:

<?php 
if (isset($_POST['signup_form'])){ 
    $params = array(); 
    $gett = $_POST['username']; 
    parse_str($gett,$params); 

    print_r ($gett); 
    echo $_POST['username']; 
}else{ 
    die('No $_POST data.'); 
} 
?> 

Ihre PHP-Code einige Probleme darin hatte, die Sie verpasst ein Semikolon und Sie haben versucht, von einem leeren Array zu drucken, Anrufe durch Ajax werden keine Laufzeitfehler angezeigt, und Sie müssen daher sehr vorsichtig sein, wenn Sie versuchen, einen Ajax zu PHP-Aufruf debuggen.

Hoffe, das hilft.

Verwandte Themen