2017-10-10 56 views
0

这是我的第一篇文章在这里。对不起,如果我的英文看起来不好。

我试图使用以下代码将表单数据提交给我的注册/ submit/index.php。

这里是我的样本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> 

这里是我的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 
       }); 

这里去我的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 
?> 

我已尝试之前连载$ GETT parse_str它。它返回我(){} []。

请帮我一下吗?我花了近20个小时,谷歌和尝试了很多。 JS是新手。

+1

尝试使用formData而不是序列化var formData = new FormData($('#signup_form'));' –

+0

HI。感谢您的回复!!。我尝试过,但仍然在我的PHP中有一个空数组。我仍然有我的警告。这是否意味着AJAX成功,没有数据通过? –

回答

1

我尽量保持简单

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

希望这有助于!

0

这是你如何调试Ajax调用示例:

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

你的PHP代码已在它的一些问题,你错过了

的Javascript一个分号,你试图从一个空数组打印,通过Ajax的调用不会显示任何运行时错误,因此当你试图调试一个Ajax到PHP调用时,你需要非常小心。

希望这会有所帮助。