2017-10-10 58 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調用時,你需要非常小心。

希望這會有所幫助。