2017-10-11 31 views
0

我無法通過ajax發送序列化表單到php文件。我可以看到客戶端的字符串,但在服務器端我收到一個空數組。 我試圖將表單數據保存到數據庫中,但我似乎無法找到一種方法來分隔每個輸入,並在我發送了ajax後在我的php文件中顯示它。序列化表單不發送ajax

的JavaScript

$(function() { 
    //twitter bootstrap script 
    $("button#guardar").click(function(e) { 

    //var info = $('#myform').serialize(); 
    var info = $('form.contact').serialize(); 
    $.ajax({ 
     type: "POST", 
     url: "solicitudesProc.php", 
     data: info, 
     success: function(data) { 
     alert(info); 
     window.location.href = "solicitudesProc.php"; 
     //window.location.reload(); 
     $("#modalnuevo").modal('hide'); 
     }, 
     error: function(data) { 
     alert("failure"); 
     } 
    }); 

    }); 
}); 
<form class="contact" id="myform" method="post" name='alta'> 
    <div class="modal-body"> 
    <div class="row"> 
     <div class="col-md-2"> 
     <label>Solicitante</label> 
     <input type="text" class="form-control pull-right" name='solicitante' maxlength="20" required /> 
     </div> 
     <div class="col-md-2"> 
     <label>Fecha Emision</label> 
     <input type="text" class="form-control pull-right" name='fechaEmision' maxlength="20" /> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-md-2"> 
     <label>Area Solicitante</label> 
     <input type="text" class="form-control pull-right" name='area' maxlength="20" /> 
     </div> 
    </div> 


    <div class="modal-footer"> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button> 
     <button type="submit" id="guardar" name='guardar' class="btn btn-danger pull-right" value="guardar">Generar</button> 
    </div> 
</form> 

服務器端solicitudesProc.php

<?php $info = $_POST; 
echo $_POST["solicitante"]; print_r($_POST); ?> 
+5

你爲什麼要改變位置? 'window.location.href =「solicitudesProc.php」;'將使用GET重新加載頁面並且沒有數據 – mplungjan

+0

https://stackoverflow.com/questions/18866571/receive-json-post-with-php – chiliNUT

+0

您還需要取消按鈕的默認操作:提交表單。 – jeroen

回答

0
  1. 不要改變位置
  2. 取消提交

我強烈建議你不要卸載窗體或線向上提交事件:

$(function() { 
    $("form.contact").on("submit", function(e) { 
    e.preventDefault(); // stop the submit 
    var info = $(this).serialize(); 
    $.ajax({ 
     type: "POST", 
     url: "solicitudesProc.php", 
     data: info, 
     success: function(data) { 
     console.log(info); 
     $("#modalnuevo").modal('hide'); 
     }, 
     error: function(data) { 
     alert("failure"); 
     } 
    }); 
    }); 
}); 
0

我maked它做這個改變工作:

變更表單動作到PHP文件IM發送。

<form action="solicitudesProc.php" class="contact" id="myform" method="post" name='alta' > 

和我的AJAX改爲:

   var info = $('#myform').serialize(); 
     //var info = $('form.contact').serialize(); 
     $.ajax({ 
       type: "POST", 
       url: form.attr("action"), 
       data: $("#myform input").serialize(), 
       success: function(data){ 
        //console.log(info); 
        window.location.href = "solicitudes.php"; 
        //window.location.reload(); 
        $("#modalnuevo").modal('hide'); 
       }, 
       error: function(data){ 
        alert("failure"); 
      } 
     }); 

    }); 

});

感謝您的幫助!