serializeArray输入数据不会通过动态添加传递思想ajax

时间:2015-12-09 17:43:30

标签: javascript ajax

function SendData(){
    var postData = $("#xForm").serializeArray();
    $.ajax({
    type: "POST",
    url: "mail.php",
    data: postData,
    success:function(data){
        console.log(data);
    },
    error: function(jqXHR, textStatus, errorThrown) 
    {
    console.log("failure send");
    }
    });
}


    $('#sub-comfirm').on('submit',  function (e){
        e.preventDefault();
        SendData();
    });



function PostImgCreate(imgValue){
    var pImg = $("#mydata");

    var inputblock = "";
    inputblock += '<input type="hidden" id="canvasData" name="canvasData">';
    pImg.html(inputblock);

    var elem = document.getElementById("canvasData");
    elem.value = imgValue;
}

我的意图是使用serializeArray获取我所有输入数据的思想php,问题是如果添加我的输入&#34; canvasData&#34;使用函数 PostImgCreate ,我的php根本没有得到数据。

但如果我添加输入&#34; canvasData&#34;直接到html字段,数据传递认为我的PHP。 为什么?如果我使用函数添加输入,我无法传递我的数据?

1 个答案:

答案 0 :(得分:0)

我只是在下面设置它,你提供的一切都在工作。你需要查看你的HTML代码,看看是否有什么不同于我的。

你有表格中的表格吗?如果是,那是无效的html并且会导致问题。 你有mydata在错误的位置吗?会导致searlize找不到它。

&#13;
&#13;
function SendData() {
  PostImgCreate("XYZ");
  var postData = $("#xForm").serializeArray();
  console.log(postData);
}


$('#sub-comfirm').on('submit', function(e) {
  e.preventDefault();
  SendData();
});


function PostImgCreate(imgValue) {
  var pImg = $("#mydata");

  if(!pImg.find("#canvasData").length) {
      var inputblock = "";
      inputblock += '<input type="hidden" id="canvasData" name="canvasData">';
      pImg.html(inputblock);
  }

  var elem = document.getElementById("canvasData");
  elem.value = imgValue;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

  <form id="xForm">
    <input name="xxx" type "text" value="testtest" />
    <span id="mydata"></span>
  </form>


<form id="sub-comfirm">
    <button type="submit">Submit</button>
</form>
&#13;
&#13;
&#13;