如题,使用TCPDF,例子是使用example_03.php
将example_03.php改成B.php,主要是$html内容改了,改成一个table内容了
情况1. 直接访问B.php,可以生成正确的PDF文件
情况2. A.php(其实就是一个表格table内容),点击按钮调用B.php,数据通过ajax post传输给B.php(内容其实就是A中的一个表格的html代码),显示一堆看不懂的乱码,没有生成PDF文件
如果在B中直接写$html=‘<table>……</table>’;也就是还是用A调用B,不用A传过来的数据,还是不行,然后直接访问B,可以生成PDF文件
另外,如果A调用B,在B中注释掉调用的TCPDF的最后两行writeHTML和Output的话,显示传过来的数据没有问题,但是一执行writeHTML和output就有问题
求大侠指点哈,这个怎么解决或者有其他方法没有?
多谢,多谢
将example_03.php改成B.php,主要是$html内容改了,改成一个table内容了
情况1. 直接访问B.php,可以生成正确的PDF文件
情况2. A.php(其实就是一个表格table内容),点击按钮调用B.php,数据通过ajax post传输给B.php(内容其实就是A中的一个表格的html代码),显示一堆看不懂的乱码,没有生成PDF文件
如果在B中直接写$html=‘<table>……</table>’;也就是还是用A调用B,不用A传过来的数据,还是不行,然后直接访问B,可以生成PDF文件
另外,如果A调用B,在B中注释掉调用的TCPDF的最后两行writeHTML和Output的话,显示传过来的数据没有问题,但是一执行writeHTML和output就有问题
求大侠指点哈,这个怎么解决或者有其他方法没有?
多谢,多谢
$html = $_REQUEST("my_content");
//下面是TCPDF,创建pdf对象,和example.03一样了
$pdf->writeHTML(........);
A.php,这里就只写js和html部分了var xmlHttpRequest; //用来装入XMLHttpRequest对象
function Ajax(){
xmlHttpRequest = createRequestObject();
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var my_data = document.getElementById("my_div").innerHTML;
var m_data = "my_content="+my_data;
xmlHttpRequest.open("post", "B.php", true);
xmlHttpRequest.onreadystatechange = requestCallBack;
xmlHttpRequest.send(m_data);
}
/** 请求回调函数 */
function requestCallBack(){
/*
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
*/
switch(xmlHttpRequest.readyState)
{
case 0:
showMessage("请求未初始化");break;
case 1:
showMessage("服务器连接已建立");break;
case 2:
showMessage("请求已接收");break;
case 3:
showMessage("请求处理中");break;
case 4:
showMessage("请求已完成,且响应已就绪");
if(xmlHttpRequest.status == 200)
showMessage(xmlHttpRequest.responseText);
break;
}
} /** 显示XMLHttpRequest当前状态信息 */
function showMessage(str)
{
var msg = document.getElementById("msg");
msg.innerHTML = msg.innerHTML + "<br/>" + str;
}
/** XMLHttpRequest对象 */
function createRequestObject()
{
var xmlHttpRequest;
if(window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlHttpRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{// code for IE6, IE5
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlHttpRequest;
}
</script>
</head> <body>
<div id="my_div">
<table>
<tr>
<td>序号</td><td>姓名</td>
</tr>
<tr>
<td>1</td><td>流星</td>
</tr>
<tr>
<td>2</td><td>流星雨</td>
</tr>
</table>
</div>
<input type="button" value="Ajax提交" onclick="Ajax();" />
<div id="msg">Ajax提交过程:</div>
</body>
除了TCPDF的东西没有列出来,我还给你写啥子东西
简历pdf对象就是30行代码,给你说的很清楚了,只是把例子中的$html这个内容变了而已,这个是唯一不同的地方,还要给你啥子内容
OK,非要我写的及其详尽么
改的仅仅writeHTML中的$html变量,这个变量是通过ajax post获得的,我要说的如何仔细你才能读懂题目?
这显然可以排除 ajax 没有获得正确数据的原因
ajax没有收到正确的内容,自然也不可能显示出期望的结果
这难道与你的 B.php 写法无关吗?2、你说 如果A调用B,在B中注释掉调用的TCPDF的最后两行writeHTML和Output的话,显示传过来的数据没有问题,但是一执行writeHTML和output就有问题
你在 B.php 是如何向 ajax 发送数据的?你不说,我怎么知道?
TCPDF 用 output 方法产生并输出 PDF 文档,你把他注释掉了还说显示没问题
这难道与你的 B.php 写法无关吗?