Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho o seguinte código PHP que gera um QR Code com um texto passado via GET:
<?php
$txt = $_GET["txt"];
if ($txt==""){
$txt = "QRCode";
}
require_once("Image/QRCode.php");
$qr = new Image_QRCode();
$options = array(
"module_size" => 10, // Tamanho
"image_type" => 'png' // Formato
);
$qr->makeCode($txt, $options);
?>
E tenho a seguinte função Ajax que retorna o conteúdo gerado pelo arquivo PHP:
var XMLHttp;
// ### Postar Comentário ###
function Ajax(txt) {
XMLHttp = null;
Caminho = "QRCode.php?txt="+txt;
// Procura por um objeto nativo (Mozilla/Safari)
if (window.XMLHttpRequest) {
XMLHttp = new XMLHttpRequest();
XMLHttp.onreadystatechange = Mostra;
document.getElementById("qrCode").innerHTML = "<h3>Processando...</h3>";
XMLHttp.open("GET", Caminho, true);
XMLHttp.send(null);
// Procura por uma versão ActiveX (IE)
}
else if (window.ActiveXObject) {
XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
if (XMLHttp) {
XMLHttp.onreadystatechange = Mostra;
document.getElementById("qrCode").innerHTML = "<h3>Processando...</h3>";
XMLHttp.open("GET", Caminho, true);
XMLHttp.send();
}
}
}
function Mostra() {
//apenas quando o estado for "completado"
if (XMLHttp.readyState == 4) {
//apenas se o servidor retornar "OK"
if (XMLHttp.status == 200) {
document.getElementById("qrCode").innerHTML = "";
document.getElementById("qrCode").innerHTML = XMLHttp.responseText;
}
else {
document.getElementById("qrCode").innerHTML = "";
alert("Houve um problema ao obter os dados:\n" + XMLHttp.statusText);
}
}
}
Este é o código HTML:
<textarea name="txt" onkeydown="Ajax(this.value);"></textarea>
<div id="qrCode"></div>
O problema é: como vou retornar e imprimir essa imagem na página?
Ele retorna uma imagem png, e se mando dar um innerHTML ele pega o "código fonte" da imagem e imprime na página.
Alguém sabe como resolvo isso?
Agradeço desde já.
Carregando comentários...