Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

@renanfig

Ajax transformando PHP e Javascript em texto

Recommended Posts

Olá pessoal...

 

Primeiramente estava com o problema que o Javascript não estava funcionando com Ajax ai descobri aqui no forum que o ajax tranforma o javacript em texto puro ai não executa... Resolvi este problema para javascript adicionando esta função:

 

function newTag() 
{       
        // Pegando a div que recebrá o Javascript
        var conteudo = document.getElementById("teste");
        
        // Declarando a criação de uma nova tag <script>
        var newElement = document.createElement("script");
        
        // Pegando os valores das Tags <script> que estão na página carregada pelo AJAX
        var scripts = resp.getElementsByTagName("script");
                
        // Aki, vamos inserir o conteúdo da tag <script> que pegamos na linha acima     
                for(i = 0; i < scripts.length; i++)
           {
                        newElement.text = scripts[i].innerHTML;
           }
           
           // Agora, inserimos a nova tag <script> dentro da div na página inicial
           conteudo.appendChild(newElement);
}	

Porém agora esta ocorrendo o mesmo problema com PHP, o código é jogado como texto puro pro browser...

 

Alguém pode me ajudar a resolver este problema?

 

Grato,

 

Renan...

Compartilhar este post


Link para o post
Compartilhar em outros sites

só vai acontecer isso, de não interpretar php, se o teu servidor não estiver habilitado para intepretar php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem alguma coisa errada então, pois a página que executo o ajax é em php e executa normalmente, porém a outra página que chamo não, veja o código fonte da página que o browser mostra...]

 


<div id="conteudo">

<link rel="stylesheet" type="text/css" href="styles.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<script type="text/javascript" src="jquery.flip.min.js"></script>
<script type="text/javascript" src="script.js"></script>

<?php
$sponsors = array(
	array('teste1', 'teste2'),
	array('teste1', 'teste2'),
	array('teste1', 'teste2'),
	array('teste1', 'teste2'),
	array('teste1', 'teste2'),
	array('teste1', 'teste2'),
	array('teste1', 'teste2'),
);
//shuffle($sponsors);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está executando num servidor web ?

 

repito, o problema não é javascript/ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou executando em um servidor Web sim, tanto é que a página index é em php e funciona normalmente e se eu chamar a página que não funciona via ajax direto ela também abre normalmente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja o código fonte da página que o browser mostra...

 

Estou executando em um servidor Web sim, tanto é que a página index é em php e funciona normalmente e se eu chamar a página que não funciona via ajax direto

 

Crie um arquivo no seu servidor chamado teste.php com o seguinte conteúdo:

 

<?php
phpinfo();

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Execute-o diretamente.

 

Não precisa colar a saída inteira aqui, apenas diga se foi exibido o logo do PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Crie um arquivo no seu servidor chamado teste.php com o seguinte conteúdo:

 

<?php
phpinfo();

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Execute-o diretamente.

 

Não precisa colar a saída inteira aqui, apenas diga se foi exibido o logo do PHP.

 

Fiz conforme citado, veja o código fonte:

 

 

<div id="conteudo">
	  <?php phpinfo(); ?></div>

Repito, se chamar a página teste diretamente mostra as informações PHP normalmente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Repito, se chamar a página teste diretamente mostra as informações PHP normalmente...

 

Amigo, você precisa perceber que isso é ilógico.

 

Se, ao chamar o arquivo teste.php, o logo e as informações do PHP são exibidas, então não deve aparecer o código PHP de forma alguma.

 

Poste seu código completo, tanto o Javascript quanto o PHP, inclusive com os nomes de cada arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como tem vários arquivos, compactei o projeto e disponibilizei para Download...

 

Poste-os aqui no fórum, @@renanfig

 

Se os arquivos forem muito grandes, utilize a tag

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arquivo Index.php

 



<?
include("funcoes.php");


//Lê o parâmetro i (índice do conteúdo)
$i=4;
if(isset($_GET["i"]))$i=intval($_GET["i"]);

?>

<!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=utf-8" />
<title>Limousines Maranata</title>
    <link href="css/estilo.css" rel="stylesheet" type="text/css" />
    <link href="css/menu.css" rel="stylesheet" type="text/css" />
    
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
	<script src="js/jquery.validate.min.js" type="text/javascript"></script>
	<script src="js/ValidaForm.js" type="text/javascript"></script>  
	<script src="js/jquery.easing.1.3.js" type="text/javascript"></script>
<script src="js/formataForm.js" type="text/javascript"></script>
<script src="js/menu.js" type="text/javascript"></script>
<script src="js/jquery.googlemaps1.01.js" type="text/javascript"></script>
<script src="js/jquery.infieldlabel.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="js/ajax.js"></script>
	<script src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=ABQIAAAAbxzsFE1Tnds0s8NIJqLUMxQ9f8xISZTQLNK4FTaamuGMJLOHFRS-8sJ-cU57GG3qIp5vjtLXLnWufw"  
	type="text/javascript"></script>
    
    
    
<script type="text/javascript" charset="utf-8">
		$(function(){ $("label").inFieldLabels(); });
	</script>
	<!--[if lte IE 6]>
		<style type="text/css" media="screen">
			form label {
					background: #fff;
			}
		</style>
	<![endif]-->


<script type="text/javascript"> 
	$(document).ready(function() { 
		$('#onde_centro').googleMaps({
			
			markers: {
				latitude:-23.67322,
				longitude:-52.60953,
				info: {
					layer: '#address'
				}
			}

		}); 
	}); 
</script> 
    
</head>

<body>

<div id="player">
<div id="som">

</div>
</div>


<div id="cabecalho">
  <div id="logo">
        <img src="img/logo_maranata.png" alt="Limousines Maranata" border="0"/>
    </div>
    <div id="menu">
   	  <ul>
            <li class="green">
                <p><a href="?i=1"<?classi(1)?> title="Parte 1">Galeria</a></p>
                <p class="subtext">Veja as fotos de nossos serviços</p>
            </li>
            <li class="yellow">
                <p><a href="?i=2"<?classi(2)?> >Midia</a></p>
                <p class="subtext">Limousines Maranata na mídia</p>
            </li>
            <li class="red">
                <p><a href="?i=3"<?classi(3)?> >Serviços</a></p>
                <p class="subtext">O que fazemos?</p>
            </li>
            <li class="blue">
                <p><a href="?i=4"<?classi(4)?> >Parceiros</a></a></p>
                <p class="subtext">Quem está conosco?</p>
            </li>
        <li class="purple">
                <p><a href="?i=5"<?classi(5)?> >Contato</a></p>
                <p class="subtext">Fale conosco!</p>
          </li>
		</ul>
    </div>
    <div id="slogan">
    </div>
</div>

<div id="conteudo">
	 <?=leconteudo($i)?>
</div>

<div id="banner">
	<div id="banner_top">
    </div>
    <div id="banner_left">
    </div>
	
  
    
    
  <div id="banner_right">
    </div>
</div>

<div id="parceiros">

</div>

<div id="contato">
    <div id="onde_estamos">
        <div id="onde_top">
    	</div>
    	<div id="onde_left">
    	</div>
        <div id="onde_centro">
         </div>  
            <div id="address">
            	Avenida Maranhão, 1799 - Zona 7<br/>
				Fone |44| 3629-8306<br/>
				Cianorte - Paraná</div> 
   	  <div id="onde_right">
    	</div>
    </div>
	<div id="fale_conosco">
	<div id="hpSignUp">
	
<h3>
				Fale Conosco!
			</h3>
			<p id="fale">
				logo responderemos sua mensagem
				<br/><br/>
                
<form id="formularioContato" method="post" accept-charset="utf-8">
		<fieldset>
			<p>
				<label for="nome">Nome</label><br />
				<input name="nome" type="text" id="nome" value="" size="30" maxlength="60">
			</p>
			<p>
				<label for="email">Email</label><br />
				<input name="email" type="text" id="email" value="" size="30" maxlength="80">
			</p>
			<p>
				<label for="itelefone">Telefone</label><br />
				<input name="itelefone" type="text" id="itelefone" onkeypress="mascara(this,telefone)" value="" size="30" maxlength="14">
			</p>
            <p>
				<label for="cidade">Cidade</label><br />
				<input name="cidade" type="text" id="cidade" value="" size="30" maxlength="60">
			</p>
            <p>
				Estado: <select name="estados" >
                            <option value="AC">Acre</option>
                            <option value="AL">Alagoas</option>
                            <option value="AM">Amazonas</option>
                            <option value="AP">Amapá</option>
                            <option value="BA">Bahia</option>
                            <option value="CE">Ceará</option>
                            <option value="DF">Distrito Federal</option>
                            <option value="ES">Espiríto Santo</option>
                            <option value="GO">Goiás</option>
                            <option value="MA">Maranhão</option>
                            <option value="MG">Minas Gerais</option>
                            <option value="MS">Mato Grosso do Sul</option>
                            <option value="MT">Mato Grosso</option>
                            <option value="PA">Pará</option>
                            <option value="PB">Paraíba</option>
                            <option value="PE">Pernambuco</option>
                            <option value="PI">Piauí</option>
                            <option value="PR" selected="selected">Paraná</option>
                            <option value="RJ">Rio de Janeiro</option>
                            <option value="RN">Rio Grande do Norte</option>
                            <option value="RO">Rondônia</option>
                            <option value="RR">Roraima</option>
                            <option value="RS">Rio Grande do Sul</option>
                            <option value="SC">Santa Catarina</option>
                            <option value="SE">Sergipe</option>
                            <option value="SP">São Paulo</option>
                            <option value="TO">Tocantins</option>
                            </select>
			</p>
			<p>
				<label for="mensagem">Mensagem</label><br />
				<textarea cols="25" rows="4" name="mensagem" id="mensagem"></textarea>
			</p>
		</fieldset>
		<p class="send">
				<button type="submit" title="Clique aqui para enviar sua mensagem" id="hpEmSubscrForm-submit">Enviar!</button>
			</p>
	</form>                
                
                
                
	

</div>
    </div>
</div> 

<div id="rodape">
    <div id="endereco">
        Avenida Maranhão, 1799 - Zona 7<br/>
        Fone |44| 3629-8306<br/>
        Cianorte - Paraná
    </div>
    <div id="orkut">
          <a href="http://www.orkut.com.br/Main#Profile?uid=519088204978162257" title="Visitar Orkut da Maranata Limousines" target="_blank"><img src="img/orkut.jpg" align="right" border="0"/></a>
    </div>
    <div id="msn"> 
	    <a href="#add_msn" name="modal" title="Nos Adicione no MSN"><img src="img/msn.jpg" width="95" height="42" border="0" alt="MSN" /></a> 
    </div>
 
</div>
</body>
</html>

Arquivo funcoes.php

 

<?

/*
Lê o conteúdo de índice n. Aqui estou lendo de arquivos
html no disco, para não perdermos tempo com coisas que
fogem ao escopo do artigo. No mundo real, geralmente você
vai ler isso aqui do banco de dados, ou usar uma função
pronta disponibilizada por seu CMS.
*/
function leconteudo($n){
    return file_get_contents("$n.php");
}

//Insere class="selected" se n=i
function classi($n){
    global $i;
    if($n==$i)echo ' class="selected"';
}

/*
Essa aqui é a parte necessária para o Ajax. Se este
arquivo for chamado sozinho, recebendo um parâmetro
n, ele retorna o texto de índice n. Passa pela
função urlencode por causa dos bugs do MSXML com
acentos (valeu mais uma vez, Bill!)
*/
if(isset($_GET["n"])){
    $t=leconteudo(intval($_GET["n"]));
    echo(urlencode($t));
}



?>

Arquivo Ajax.js

 

try{
    xmlhttp = new XMLHttpRequest();
}catch(ee){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }
}

atual=0
function carrega(n){

    //Exibe o texto carregando no div conteúdo
    var conteudo=document.getElementById("conteudo")
    conteudo.innerHTML='<div class="carregando">Carregando...</div>'

    //Guarda a página escolhida na variável atual
    atual=n

    //Abre a url
    xmlhttp.open("GET", "funcoes.php?n="+n,true);

    //Executada quando o navegador obtiver o código
    xmlhttp.onreadystatechange=function() {

        if (xmlhttp.readyState==4){

            //Lê o texto
            var texto=xmlhttp.responseText

            //Desfaz o urlencode
            texto=texto.replace(/\+/g," ")
            texto=unescape(texto)

            //Exibe o texto no div conteúdo
            var conteudo=document.getElementById("conteudo")
            conteudo.innerHTML=texto

            //Obtém os links do menu
            var menu=document.getElementById("menu")
            var links=menu.getElementsByTagName("a")

            //Limpa as classes do menu
            for(var i=0;i<links.length;i++)
                links[i].className=""

            //Marca o selecionado
            links[atual-1].className="selected"
        }
    }
	
function newTag() 
{       
        // Pegando a div que recebrá o Javascript
        var conteudo = document.getElementById("teste");
        
        // Declarando a criação de uma nova tag <script>
        var newElement = document.createElement("script");
        
        // Pegando os valores das Tags <script> que estão na página carregada pelo AJAX
        var scripts = resp.getElementsByTagName("script");
                
        // Aki, vamos inserir o conteúdo da tag <script> que pegamos na linha acima     
                for(i = 0; i < scripts.length; i++)
           {
                        newElement.text = scripts[i].innerHTML;
           }
           
           // Agora, inserimos a nova tag <script> dentro da div na página inicial
           conteudo.appendChild(newElement);
}	
    xmlhttp.send(null)
}

function menuclick(e){

    //Correção para eventos quebrados da Microsoft
    if(typeof(e)=='undefined')var e=window.event
    source=e.target?e.target:e.srcElement
    //Correção para o bug do Konqueror/Safari
    if(source.nodeType==3)source=source.parentNode

    //Obtém o número quebrando a url
    n=source.getAttribute("href").replace(/.*=/,"")

    //Chama o carrega
    carrega(parseInt(n))

    //Cancela o click (evita a navegação)
    return false
}

function init(){

    //Obtém os links do menu
    var menu=document.getElementById("menu")
    var links=menu.getElementsByTagName("a")

    //Atribui o evento
    for(var i=0;i<links.length;i++)
        links[i].onclick=menuclick
}

if(xmlhttp)window.onload=init

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.