2017-10-10 4 views
0

Ceci est mon premier post ici. Désolé si mon anglais semble être mauvais.

J'ai tenté d'utiliser les codes suivants pour soumettre des données de formulaire à mon inscription/submit/index.php.

Voici mon exemple HTML

<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> 

Voici mon 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 
       }); 

va ici mon 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 
?> 

J'ai essayé de sérialisation gett de $ avant parse_str il. Cela me renvoie() {} [].

Pourriez-vous m'aider s'il vous plaît? J'ai passé près de 20 heures sur ce sujet, google et essayé beaucoup. Suis nouveau à JS.

+1

Essayez formData à la place de sérialiser 'var formData = new FormData ($ ('# signup_form'));' –

+0

HI. Merci pour votre réponse!!. J'ai essayé mais j'ai toujours un tableau vide dans mon PHP. J'ai toujours mon ALERT. Cela signifie-t-il le succès d'AJAX sans données transmises? –

Répondre

1

J'essaie de garder les choses simples

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 />"; 
    } 
?> 

Hope this helps!

0

Ceci est un exemple de la façon dont vous pouvez déboguer un appel ajax:

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.'); 
} 
?> 

Votre code php avait quelques problèmes, vous manqués un point-virgule et vous avez essayé d'imprimer à partir d'un tableau vide, les appels via ajax ne montrera aucune erreur d'exécution, et donc vous devez être très prudent lorsque vous essayez de déboguer un appel ajax à php.

Espérons que cela aide.