我无法在首次运行中打印数据,但可以在第二次运行中进行打印。我想在首次运行中打印数据。
我有3个文件 1.主文件发送ajax帖子,打印数据(main.php) 2.将发送的数据放入会话(put.php) 3.将数据打印到excel(print.php)
main.php
<?php
session_start();
echo '<p class="first">ABC</p>'; //DOM IS <p class="first">ABC</p>
?>
$(document).ready(function(){
var value = $('.first').text();
myfun();
function myfun(){
$.post("put.php", {"content":value},function(data){
console.log(data);
});
}
window.location.href ='print.php';
});
put.php
<?php
session_start();
$_SESSION["content"] = $_POST["content"];
?>
print.php //这些文件打印成excel代码很简单
<?php
session_start();
header("content-type:application/xls");
$table = '<table><tr><th>Name</th></tr>';
$table .='<tr><td>'.$_SESSION["content"].'</td></tr></table>';
echo $table;
header("content-Disposition: attachment; filename = new.xls");
?>
请提前帮助我。
答案 0 :(得分:1)
js不会停止exec,
所以你应该在ajax完成后重定向,以确保$_SESSION["content"]
已设置
更改
$(document).ready(function(){
var value = $('.first').text();
myfun(); //i was missing then
function myfun(){
$.post("put.php", {"content":value},function(data){
console.log(data);
});
}
window.location.href ='print.php';
});
以强>
$(document).ready(function(){
var value = $('.first').text();
myfun(); //i was missing then
function myfun(){
$.post("put.php", {"content":value},function(data){
console.log(data);
window.location.href ='print.php';
});
}
});