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。 为什么?如果我使用函数添加输入,我无法传递我的数据?
答案 0 :(得分:0)
我只是在下面设置它,你提供的一切都在工作。你需要查看你的HTML代码,看看是否有什么不同于我的。
你有表格中的表格吗?如果是,那是无效的html并且会导致问题。
你有mydata
在错误的位置吗?会导致searlize找不到它。
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;