Ir para conteúdo
Fórum Script Brasil
  • 0

[Ajuda] - Ajax + Php + MySQL (Blob)


-= NemesiS =-

Pergunta

Olá pessoal do script brasil ..

estou tendo a seguinte dificuldade em carrega na div minha imagem do campo blob do mysql.

arquivo ajax.js

function ajax(){
    try{
        myObj = new XMLHttpRequest()
    }catch(e){
        myObj = new ActiveXObject("Microsoft.XMLHTTP"); 
    }
    return myObj;
}
arquivo changeImg.js
function changeImg(id)
{
    objImg = new ajax();
    objDiv = document.getElementById("imgView");
    
    objImg.open("GET","lib/changeImg.php",true);
    objImg.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    objImg.send("id="+id);
    objImg.onreadystatechange = function(){

        if(objImg.readyState == 1)
        {
            objDiv.innerHTML = "<img src='graphics/loading.gif'><br>Carregando imagen...<br>";
        }

        if(objImg.readyState == 4)
        {
            objDiv.innerHTML = "<img src='"+ajax.responseXML+"' width='325' height='225'>";
        }
    
    }
    
}
arquivo changeImg.php
<?php
require("../includes/mysql.php");

$id = $_GET['id'];

$sql = new Mysql();
$sql = $sql->query("SELECT tb_fotos.img FROM tb_fotos WHERE tb_fotos.id = '$id'");
$reg = mysql_fetch_object($sql);

header("Content-type: image/jpeg"); 
echo $reg->img;

?>
arquivo index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Teste<title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript" src="js/ajax.js"></script>
<script language="javascript" type="text/javascript" src="js/changeImg.js"></script>
</head>

<body>

<div id="imgView"></div>

<br>

                  <select name="listImg" id="listImg" onchange="java script:changeImg(this.value);">
                    <?php
                $sql_img = new Mysql();
                $sql_img = $sql_img->query("SELECT * FROM tb_fotos WHERE tb_fotos.referencia = '$ref' ORDER BY tb_fotos.nome LIMIT 20");
                $qtd_img = mysql_num_rows($sql_img);
                
                if($qtd_img <= 0){
                    echo "<option value=\"$reg_img->id\">nenhuma imagem disponivel</option>";
                    }
                    else{
                    for($x=0; $x<$qtd_img; $x++){
                        $reg_img = mysql_fetch_object($sql_img);
                        echo "<option value=\"$reg_img->id\">$reg_img->nome</option>";
                        }
                    }
                

                
                ?>
                  </select>

</body>
</html>

quando mudo o listBox para carregar uma nova imagem coma ID escolhida ele não demonstra erro algum, mas simplesmente não carrega.

o listBox envia para a função em javascript a ID da imagem a ser carregada e a função chama o PHP que vai no MySQL e faz um SELECT para carregar a imgem

e retorna com HEADER de imagen (JPG) já que vai para um objeto do tipo img src='resposta_vinda_do_php'

alguém poderia me ajudar .. plz

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

eu já tive um problema parecido.

sempre q eu carregava um campo do tipo blob usando ajax,

o arquivo de retorno vinha corrompido.

porque a string fica grande demais pro ajax interpretar.

a solucao é usar algum framework ajax,

porque geralmente eles vem com um tratamento pra essas situacoes adversas.

sucesso ai.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...