两个HTML界面之间的数据传递出了通过后台逻辑进行传递之外,如果通过ajax来传递的话,一些后台传递过来的值不能够正确的传递到前台界面上面去。有一种方法,就是先将后台传递进来的数据先放到一个隐藏的文本框中,然后传递给另外一个界面文本框中的内容,就可以做到两个页面直接的数据传递。
隐藏文本框:
<input type="hidden" id="bookinfo"></input>
ajax请求成功:(注:这里后台传递的是一个数组,主要是现将数据放入隐藏文本框,然后给定义)
var data=JSON.stringify(dldata);
console.log(data);
$.ajax({
type:"POST",
async: false,
contentType:"application/json",
data:data,
url:"PrintManyQRcode",
success:function(data){
console.log(data);
var str = "";
for(var i=0;i<data.length;i++){
if(i==0){
str+=data[i].bookname;
}else{
str+=","+data[i].bookname;
}
}
$("#bookinfo").attr("value",str);
var bookinfo = $("#bookinfo").attr("value");
console.log(bookinfo);
window.open("/showprintall");
}
})
在打开的另外一个HTML界面中获取传递过来的字符串:
var datainfo = window.opener.document.getElementById("bookinfo").getAttribute("value");
console.log(datainfo);
console.log("结束");
方法还有很多,暂时先写一个。