2017-10-11 29 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"); 
      } 
     }); 

    }); 

});

感谢您的帮助!