Senhores(as), trabalho com teste de software, e sempre tenho dificuldade em criar codigos, vou descrever meu problema: tenho um código onde preciso fazer o envio de uma variavel de JS para PHP onde gero um PDF. ao enviar a variavel por URL esta funcionando legal, porem como a variavel pode chegar a mais de 33mil caracteres esta estourando a URL. pesquisei alguns exemplos para utilizar post para resolvar o problema, mas a o php não consegue pegar a resposta. o codigo pega o valor de uma div e envia para o servidor. Segue o codigo do script: //função que envia parametros para o php foi tirado o envio por url porque dava erro de tamanho
function envia() {
ajax = iniciaAjax();
alert('f1');
if(ajax) {
alert('10000000');
imprimir();
alert('2');
}
else{
alert("O Ajax não funcionou corretamente");
}
}
//funcao que inicializa o ajax para envio de variavel para o servidor
function iniciaAjax() {
var req;
try {req = new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){
try {req = new ActiveXObject("Msxml2.XMLHTTP");}
catch(ex){
try {req = new XMLHttpRequest();}
catch(exc) {
alert("Esse browser não tem recursos para uso do Ajax!");
req = null;
}
}
}
return req;
}
//abre a pagina de impressao php
function imprimir(){
window.open('imprimir.php', new Date().getTime(),'width=460,height=355,top=0,left=0');
}
//pega conteudo de uma div e salva em um campo invisevel
function carregar() {
var frase = document.getElementById('desktop').innerHTML;
document.getElementById('dados').value = frase;
alert("Esta string possui " + frase.length + " caracteres.");
envia();
}
criação do campo hidden para receber o valor e botão que chama a função
<a href="#" title="Abrir" onClick="carregar()"><img src="images/open.png" alt="Abrir"/></a>
<form>
<input type="hidden" value="" id="dados" name="dados_enviar" />
</form>
a leitura do lado do server
imprimir.php
<?php
require_once("dompdf/dompdf_config.inc.php");
$hh = $_POST['dados_enviar'];
$html = '
<html>
<head>ss</head>
<style>
h1 {color:#333; size:20px; margin-bottom:5px;}
h3 {color:#222;}
</style>
<body>
<h1>Teste</h1>
<h3>Impresso.</h3>
</body>
</html>';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('letter', 'landscape');
$dompdf->render();
$dompdf->stream("exemplo-01.pdf");
?> se possivel passarem algum caminho a seguir, agradeço.