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

Innerhtml, Como Alterar Tags A Partir De Arquivo?


Spyder.RV

Pergunta

estou com um problema mais ou menos assim:

objeto.GetElementByID('divTeste').innerHTML = '...blá...blá...blá';

Quero redefinir o innerHTML carregando um arquivo em php que tá no mesmo diretório da página que contém esse objeto, tem como???

Editado por Spyder.RV
Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Impressão minha, ou isso é Ajax?

Dá para usar sim o include no php, mas isso aí é JavaScript!

A função include seria:

include("arquivo.php");
Agora, para modificar o innerHTML, jogando o conteúdo de um arquivo PHP, você precisará utilizar o Ajax mesmo, tem uma forma fácil de fazer isso: ajax.js:
function ajaxInit() {
    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;
    }
function Carrega(PAGINA){
    pagina = PAGINA;
    ajax = ajaxInit();
    if(ajax){
        ajax.open("GET", PAGINA + ".php", true);
        ajax.onreadystatechange = function(){
        var Lugar = document.getElementById('divTeste');
            if(ajax.readyState == 4){
                if(ajax.status == 200){
                    var ConteudoPagina=ajax.responseText;
                    Lugar.innerHTML=ConteudoPagina;
                    }
                else {
                    alert(ajax.statusText);
                    }
                }
            }
        ajax.send(null);
        }
    }

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, para modificar o innerHTML, jogando o conteúdo de um arquivo PHP, você precisará utilizar o Ajax mesmo, tem uma forma fácil de fazer isso...

Maravilhoso, funcionou às míl maravilhas...

O único problema foi o charset...

estou usando utf-8 e no Firefox saiu certinho... mas no IE não deu certo...

Segue o cabeçalho da minha página mãe:

<!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" lang="pt-br" xml:lang="pt-br">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <link rel="stylesheet" href="layout.css" type="text/css" media="screen" title="no title" charset="utf-8" />
    </head>

Tem como definir o charset do conteúdo que vai ser carregado??

Editado por Spyder.RV
Link para o comentário
Compartilhar em outros sites

  • 0

Tem, e me desculpe não haver postado.

Esse é um "problema" já conhecido para quem chama arquivos PHP com Ajax, é que eu esqueci que isso ocorreria. =/

Joga esse header no topo da página que será carregada pelo Ajax, que esta funcionará sem problema algum!

<?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?>

Editado por Lvcifer!
Link para o comentário
Compartilhar em outros sites

  • 0
Tem, e me desculpe não haver postado.

Esse é um "problema" já conhecido para quem chama arquivos PHP com Ajax, é que eu esqueci que isso ocorreria. =/

Joga esse header no topo da página que será carregada pelo Ajax, que esta funcionará sem problema algum!

<?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?>

Beleza... no caso, troquei o iso-8859-1 pelo utf-8 e deu certim certim...

Ajax é uma coisa de louco...

Ficou show de bola...

estou enfrentando problemas de cache no IE 6: Carreguei uma página usando a função que você me passou, daí alterei ela e atualizei no servidor, se clicar no link dela novamente, não carrega as atualizações, preciso limpar todo o cache do IE pra resolver...

Tem alguma forma de contornar isso? No FF até que tá normal...

Editado por Spyder.RV
Link para o comentário
Compartilhar em outros sites

  • 0
Eu costumo resolver isso impedindo que a página entre em cache, com o seguinte código:

<?php
header("Expires: {$gmtDate} GMT");
header("Last-Modified: {$gmtDate} GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
?>

Show de bola... agora tá 100%

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, tá ficando até razoável pro meu primeiro site...

Dêem uma olhada, ainda faltam alguns detalhes:

http://www.asogo.com.br/novo

Agora, estou com um probleminha: No ítem Clientes, quero fazer uma animação que a cada 5 segundos, as informações do cliente mudam para um novo cliente. Pensei em fazer da seguinte forma:

Quando clico em Clientes, abre a página de clientes. Dentro da página de clientes, montei um javascript para que a cada 5 segundos executa a função que me foi passada acima para carregar uma segunda página em php contendo as informações do cliente.

O Erro que tá ocorrendo é o seguinte:

Se carregar a página clientes.php direto pela barra de endereços, a animação roda, mas se carregar pelo AJAX, ela carrega, mas não executa nenhuma animação (carga no INDEX através da função AJAX que me foi passada acima).

Na verdade o que eu estou fazendo é carregando uma página via AJAX e colocando ela numa DIV e depois carregar uma segunda página também AJAX para alterar parte do conteúdo da primeira página que foi carregada. E é isso que não tá dando certo... a parte de rolar pelo setInterval tá funcionando bem, apenas a segunda carga da função em AJAX que não tá dando certo...

Tá meio confuso mas espero que vocês entendam... Até eu me confundi quando fui escrever hehehe...

função em javascript para rodar a animação:

var iROLLOVER    = 5;    // Tempo em Segundos
setInterval("rollOverCliente()", iROLLOVER * 1000);

function rollOverCliente()
{
   // Rola Cliente
   if (iCliente >= MAXCOUNT)
   iCliente = 0;
   iCliente++; 
   ajaxCargaDeConteudo('clientegetdatadetails', 'logoClientes', 'iCliente=' + iCliente, '');
}
Página: clientegetdatadetails.php:
<?php 
    header("Content-Type: text/html; charset=utf-8",true); 
    header("Expires: {$gmtDate} GMT");
    header("Last-Modified: {$gmtDate} GMT");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    
    // Pega Dados do cliente
    $userLogin     = 'XXXXX;
    $userPassword    = 'SSSSS';
    @mysql_connect('HHHHH', $userLogin, $userPassword) or die("1 - Erro na Conexão, tratar depois");
    @mysql_select_db('DDDDD) or die("2 - Erro na Conexão, tratar depois");
        
    // Pega dados do Cliente
    $iCliente      = (!isset($_GET['iCliente']) ? 1: $_GET['iCliente']);
    $codigoSQL     = "SELECT * FROM clientes WHERE idCliente = $iCliente;";
    $consultaSQL = mysql_query($codigoSQL) or die("3 - Erro na Conexão, tratar depois");
    if ($dadosSQL = mysql_fetch_array($consultaSQL))
    {
        $razaoCliente = $dadosSQL['razaoCliente'];
        $linkCliente  = $dadosSQL['linkCliente'];
        $logoCliente  = $dadosSQL['logoCliente'];
    }
    else
    {
        $razaoCliente = "ASO Assessoria em Saúde Ocupacional";
        $linkCliente  = "http://www.asogo.com.br";
        $logoCliente  = "asolino-cert.gif";
    }
?>
            <h2>Clique sobre a logomarca para acessar o site da empresa</h2>
            <a href="<? echo $linkCliente; ?>">
                <img src="imagens/clientes/<? echo $logoCliente; ?>" id="logomarca"/>
            </a>
            <p id="destaqueLogomarca">
                <a href="<? echo $linkCliente; ?>">
                    <? echo $razaoCliente; ?>
                </a>
              </p>

Editado por Spyder.RV
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...