Javascript 使用动态添加,序列化数组输入数据不会通过ajax 函数SendData(){ var postData=$(“#xForm”).serializeArray(); $.ajax({ 类型:“POST”, url:“mail.php”, 数据:postData, 成功:功能(数据){ 控制台日志(数据); }, 错误:函数(jqXHR、textStatus、errorshown) { console.log(“发送失败”); } }); } $(“#子公司”)。关于('submit',函数(e){ e、 预防默认值(); SendData(); }); 函数positMgCreate(imgValue){ var pImg=$(“#我的数据”); var-inputblock=“”; inputblock+=''; html(inputblock); var elem=document.getElementById(“canvasData”); 元素值=imgValue; }

Javascript 使用动态添加,序列化数组输入数据不会通过ajax 函数SendData(){ var postData=$(“#xForm”).serializeArray(); $.ajax({ 类型:“POST”, url:“mail.php”, 数据:postData, 成功:功能(数据){ 控制台日志(数据); }, 错误:函数(jqXHR、textStatus、errorshown) { console.log(“发送失败”); } }); } $(“#子公司”)。关于('submit',函数(e){ e、 预防默认值(); SendData(); }); 函数positMgCreate(imgValue){ var pImg=$(“#我的数据”); var-inputblock=“”; inputblock+=''; html(inputblock); var elem=document.getElementById(“canvasData”); 元素值=imgValue; },javascript,ajax,Javascript,Ajax,我的意图是使用serializeArray获取我的所有输入数据,问题是如果使用函数PostImgCreate添加我的输入“canvasData”,我的php根本无法获取数据 但是,如果我将输入“canvasData”直接添加到html字段中,数据将传递到我的php。 为什么?如果我使用函数添加输入,我无法传递数据?我只是在下面进行了设置,您提供的一切都正常工作。你需要看看你的HTML代码,看看是否有什么不同于我的 你有表格吗?如果是,这是无效的html,将导致问题。 您是否将mydata放在错误

我的意图是使用serializeArray获取我的所有输入数据,问题是如果使用函数PostImgCreate添加我的输入“canvasData”,我的php根本无法获取数据

但是,如果我将输入“canvasData”直接添加到html字段中,数据将传递到我的php。
为什么?如果我使用函数添加输入,我无法传递数据?

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

你有表格吗?如果是,这是无效的html,将导致问题。 您是否将
mydata
放在错误的位置?会让西尔兹找不到它

函数SendData(){
PostImgCreate(“XYZ”);
var postData=$(“#xForm”).serializeArray();
console.log(postData);
}
$(“#子公司”)。关于('submit',函数(e){
e、 预防默认值();
SendData();
});
函数positMgCreate(imgValue){
var pImg=$(“#我的数据”);
if(!pImg.find(#canvasData”).length){
var-inputblock=“”;
inputblock+='';
html(inputblock);
}
var elem=document.getElementById(“canvasData”);
元素值=imgValue;
}

提交

在其他函数中,您在何处调用
positmgcreate
?但在单击提交之前,positmgcreate已被调用。您是否确保没有添加多个?mydata是否在xForm中?我检查了是否添加了输入,是的,只添加了一个输入,数据上也没有任何错误。它只是不显示在我的php结果。但是如果我在html上添加输入,我会在php上获得数据。我不知道为什么会这样。
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;
}