Ir para conteúdo

POWERED BY:

Arquivado

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

amdoim

innerHTML+include não funciona?

Recommended Posts

eu tenho esse codigo

 

<script type="text/javascript">

 

function incrudejs() {

var obj = document.getElementById("box");

obj.innerHTML = "<?php include('uia.html'); ?>";}

</script>

 

<a href="#" onclick="incrudejs();alert('eita cacildas\nMuahahahahah');"> dsafa</a>

 

<br>

<div id="box"> muhahahahahahahaahaha</div>

 

só que não está a funcionar

 

será que alguem poderia me explicar pq não está a funcionar??

 

desde já obrigado

 

e me descupem os erros é que me veio isso na cabeça e só me aquieto agora quando (se) isso

 

funcionar

 

ps: se for pra parte de php, me desculpem é que eu não quis fazer tpc duplicado

 

 

abraçU

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse seu arquivo é um .php?

Veja que no HTML final, o exibido no Browser, você já vai ter a string que virá do "uia.html", incluida dentro desse arquivo ai.

Eu testei aqui, e tá certinho o innerHTML... mas você precisa rodar os .php de um servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então o unico problema ai é eu mudar meus arquivos para .php?

 

foi isso que eu entendi

 

eu vou tentar aqui

 

e posto aqui

 

obrigado ai

 

 

 

abraçU

Compartilhar este post


Link para o post
Compartilhar em outros sites

Incorreto...

O bruno quis dizer para você rodar o seus scripts em um webserver,que tenha suporte a php,senão aquelas tags php e o conteudo nela serão considerados simples strings.

Coloca um <?php echo 'Olá pessoal!'; ?> no lugar do valor do inner e roda,se der certo,o problema é outro.

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não não amigo,

 

Isso nunca vai funcionar, o php é server side e o javascript client side, rodam em tempo e ambientes diferentes, o php roda no servidor e manda uma resposta para o browser códigos interpretados por ele aee o javascript entra.

 

Quando você faz isso aqui

obj.innerHTML = "<?php include('uia.html'); ?>";}

você ta querendo dizer que o browser entende tags php, o ideal é você usar o ajax e dar um innerHTML com o responseText dele.

 

Aqui no forum deve ter vários códigos de ajax que tem como você aproveitar.

 

Abssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

É isso, tenho código php, o ficheiro terá que ter extensão .php. É isso que os amigos em cima falaram.

 

Cumprimentos,

webflex

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra, falei mo besteira no post acima e estou aqui para me redimir..

 

Se liga, isso q você está tentando fazer é possivel pelo seguinte, você dar uma include em php para dentro de uma variável e utilizar como innetHTML no javascript.. Como o webflex falou só que tem q ter condições de ser arquivos ".php"

 

Seguinte, eu fiz um teste aqui e funcionou:

 

Vai no seu servidor apache e crie 2 arquivos, um com nome de teste.php e outro como teste.html

 

o código do "teste.php" você coloca assim:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<script>
window.onload = function(){
var teste = "<? include 'teste.html' ?>";
alert(teste);
document.getElementById("box").innerHTML=teste;
}
</script>

<div id="box">

</div>
</body>
</html>

 

e no teste.html, você coloca por exemplo assim:

 

<p>teste</p>

 

você vai ver que quando você executar no seu servidor "http://localhost/teste.php" ele dará um alert assim "<p>teste</p>".

O q acontece, php no server escreve o conteudo de teste.html dentro de onde você colocou a tag php, portanto quando você da o alert ele mostra o conteúdo da variável.

 

O lance do tempo de execução é o seguinte, o primeiro a ser executado é o php, no caso o javascript para poder dar o innetHTML no campo que você quer, ele precisa receber um estímulo de um evento que no caso usei o "onload" ou você deve usar o "document.write" .

 

 

Desculpem por qualquer coisa errada q eu tenha falado.

 

Absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não vai dar certo, por que geralmente o arquivo incluido vem com quebra de linha ou com ASPAS ou até mesmo a TAG SCRIPT afeta.

var teste = "<? include 'teste.html' ?>";

Recomendo por diretamente no HTML.

<div id="box">
<? include 'uia.html' ?>
</div>
ou entao usar Ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Silverfox...não entendi muito bem...funciona perfeitamente cara...o.o

Suas dicas foram bem boas,porém o outro modo também funciona...

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Silverfox...não entendi muito bem...funciona perfeitamente cara...o.o

Suas dicas foram bem boas,porém o outro modo também funciona...

Abraço!

faz 3 testes:

http://localhost/teste1.php(com quebra de linha)

<p>asdasdsad</p>
<p>asdasdsad</p>
<p>asdasdsad</p>

http://localhost/teste2.php

<p><img src="foto.jpg" /></p>

http://localhost/teste3.php

<script>alert("faio");</script>

ae e só trocar o include:

window.onload = function(){
var teste = "<? include 'teste.html' ?>";
alert(teste);
document.getElementById("box").innerHTML=teste;
}

GARANTO isso não é nem 50% funcional, alem de causar muita dor de cabeça ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei,tudo funcionou corretamente (não testei o do script pois afinal,quem adicionaria javascript a um inner?).

Não entendi ainda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa

 

obrigado ai pela atenção

 

eu não consegui fazer de nenhuma forma que voces me explicaram

 

mas tudo bem era só uma coisa que tinha vindo em minha mente

 

isso é facim de fazer usando ajax, mas eu quiria ver se tinha outro caminho

 

eu só quiria carregar uma pagina no meio de outra sem a necessidade de carregar toda a pagina

 

como eu disse, com ajax é facim, mas como eu tbm disse eu sou curioso xD

 

eu tenho uma ultima duvida por agora,

 

eu posso inserir codigos php via JS em uma pagina?

 

tipo eu coloco meu codigo php lá no arquivo.js ( ja tentei só que não deu certo rsrrss) dai insiro ele na pagina?

 

me descupem é que eu não entendo muito ou quase nada de php

 

eu sei um pouco de js

 

o codigo é esse

 

<?
	$dh = opendir(($dir = './itamerdes/'));

	while (false !== ($filename = readdir($dh)))
	{
	?>
	<table width="401" border="0" align="center" cellspacing="1" cellpadding="1">
		<tr>
		<?
		if (is_dir("$dir$filename") && ! ($filename == '.' || $filename == '..'))
		{
		?>
			<td width="15%">Diretório</td>
			<td width="85%"><?="<a href=\"$dir$filename\">$filename</a>"?></td>
		</tr>
		<?
		}
		elseif (is_file("$dir$filename") && ! ($filename == '.' || $filename == '..'))
		{
		?>
		<tr>
			<td width="15%">Arquivo</td>
			<td width="85%"><?="<a href=\"$dir$filename\">$filename</a>"?></td>
			
		<?
		}
		?>

ps: esse code não fui eu que fiz xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Silverfox...não entendi muito bem...funciona perfeitamente cara...o.o

Suas dicas foram bem boas,porém o outro modo também funciona...

Abraço!

faz 3 testes:

http://localhost/teste1.php(com quebra de linha)

<p>asdasdsad</p>
<p>asdasdsad</p>
<p>asdasdsad</p>

http://localhost/teste2.php

<p><img src="foto.jpg" /></p>

http://localhost/teste3.php

<script>alert("faio");</script>

ae e só trocar o include:

window.onload = function(){
var teste = "<? include 'teste.html' ?>";
alert(teste);
document.getElementById("box").innerHTML=teste;
}

GARANTO isso não é nem 50% funcional, alem de causar muita dor de cabeça ;)

 

 

Silverfox,

 

Eu concordo muito com você, porém mandei o segundo post e montei o exemplo mais por me redimir pq eu bati o pé e disse nos seguintes termos "isso nunca funcionaria" e quando fui testar e vi q funciona, poreééééem não é a forma correta, eu nunca utilizei e nem utilizaria pq sei que não é uma boa pratica, mas como falei uma coisa sem antes testar resolvi corrigir.

 

O ideal é como você falou ou por include direto no HTML ou via ajax. assim do modo q ele fez naum é 100% funcional e fica de uma forma ruim, porém naum está 100% errado.

 

 

Abssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem para mostrar que nao estou mentindo, vejam:

erro com quebra de linhas:

<p>asdasdsad</p>
<p>asdasdsad</p>
<p>asdasdsad</p>
Imagem Postada

---------------------------------------

Erro com ASPAS:

<p><img src="foto.jpg" /></p>
Imagem Postada

 

Acho que vocês não entenderam os TESTEs que eu passei, hehehehe

 

Bem ae esta a RESPOSTA do Firefox.

 

Outra não vejo motivo para incluir algo dentro do JAVASCRITP já que a requisiação é por SERVER-SIDE mesmo.

abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

realmente dessa forma não iria funcionar.

seria o mesmo problema que tentar escrever isso:

 

elemento.innerHTML = " <p>texto</p>
<p>texto</p>"

não funcionaria...

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.