序列化表单不发送ajax

时间:2017-10-11 12:41:57

标签: javascript php jquery ajax

我无法通过ajax将序列化表单发送到php文件。我可以在客户端看到字符串,但在服务器端我收到一个空数组。 我试图将表单数据保存到数据库中,但我似乎无法找到一种方法来分隔每个输入,并在我使用ajax发送后在我的php文件中显示它。

的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);  ?>

2 个答案:

答案 0 :(得分:0)

  1. 请勿更改位置
  2. 取消提交
  3. 我强烈建议您删除表单或连接提交事件:

    $(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");
          }
        });
      });
    });
    

答案 1 :(得分:0)

我通过做这些改变使其工作:

将表单操作更改为发送的php文件。

<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");
            }
        });

    });

});

感谢您的帮助!

相关问题