Jump to content

Archived

This topic is now archived and is closed to further replies.

sedex

Erro no envio de variaveis com ajax

Recommended Posts

Olá pessoal, to com um probleminha bem estranho...

Estou usando ajax para atualizar uma DIV central, onde todos os links sao abertos, fiz isso para evitar o uso de iframes.

 

Esta funcionando perfeitamente, menos quando tento passar alguma variavel no link...

 

Veja o link:

<a href="#" onClick="incluir('exibe_eventos.php?noticia=1');">Notícia 1</a>

 

Se eu colocar apenas exibe_eventos.php a div atualiza, se eu deixar com a variavel ele retorna o seguinte erro:

 

Warning: main(exibe_eventos.php?noticia=15) [function.main]: failed to open stream: No such file or directory in /home/djlazaro/public_html/include.php on line 3

 

Warning: main() [function.include]: Failed opening 'exibe_eventos.php?noticia=15' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/djlazaro/public_html/include.php on line 3

 

O erro pode ser visualizado em http://www.djlazaro.com.br - CLIQUE NA MINIATURA DO EVENTO DA PAGINA PRINCIPAL.

Share this post


Link to post
Share on other sites

Você está dando um include assim??

include 'exibe_eventos.php?noticia=1';

Share this post


Link to post
Share on other sites

Olá,

 

O problema é que em alguns casos ( acho que por causa da configuração do servidor ) o include não aceita você passar parametros por url, já havia visto este problema em outros tópicos, eu sugiro que você use a biblioteca Prototype para fazer estas requisições é bem simples e ajuda bastante. Se quiser saber mais sobre o assunto posta ai que te dou uma mão.

 

Att,

 

Orides.

Share this post


Link to post
Share on other sites

Esse é o arquivo include.php

 

<?php

$pagina =$_GET['variavel'];

include($pagina);

?>

Esse aqui é o javascript que fica na página principal

<script>

var myConn = new XHConn();

if (!myConn) alert("deu erro aqui.");

var inclusao = function (oXML) { document.getElementById('include').innerHTML = oXML.responseText; };

function incluir (url)

{

document.getElementById('include').innerHTML = "<div class='loading'><img src='loading.gif' /></div>";

myConn.connect("include.php", "GET", "variavel="+url, inclusao);

}

</script>

 

Esse é o arquivo XHConn.js

 

function XHConn()

{

var xmlhttp, bComplete = false;

try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }

catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }

catch (e) { try { xmlhttp = new XMLHttpRequest(); }

catch (e) { xmlhttp = false; }}}

if (!xmlhttp) return null;

this.connect = function(sURL, sMethod, sVars, fnDone)

{

if (!xmlhttp) return false;

bComplete = false;

sMethod = sMethod.toUpperCase();

 

try {

if (sMethod == "GET")

{

xmlhttp.open(sMethod, sURL+"?"+sVars, true);

sVars = "";

}

else

{

xmlhttp.open(sMethod, sURL, true);

xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");

xmlhttp.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded");

}

xmlhttp.onreadystatechange = function(){

if (xmlhttp.readyState == 4 && !bComplete)

{

bComplete = true;

fnDone(xmlhttp);

}};

xmlhttp.send(sVars);

}

catch(z) { return false; }

return true;

};

return this;

}

 

O arquivo exibe_eventos.php é

 

<?php

$consulta_sql = mysql_query("SELECT * FROM eventos WHERE imagem=1 ORDER BY codigo ASC LIMIT 0,3");

if($consulta_sql){

while($row = mysql_fetch_array($consulta_sql)){

$id = $row['id'];

$diretorio = $row['diretorio'];

$titulo = $row['titulo'];

$dia = $row['dia'];

$horario = $row['horario'];

$local = $row['local'];

$cidade = $row['cidade'];

$estado = $row['estado'];

$secao = $row['secao'];

$conteudo = $row['conteudo'];

$codigo = $row['codigo'];

?>

 

<a href="#" onClick="incluir('exibe_eventos.php?noticia=<?php echo("$id"); ?>');">

<img src="imx_eventos.php?foto=admin/eventos/<?php echo("$diretorio"); ?>" alt="<?php echo("($titulo"); ?>" style="border:0"></a>

<br />

<span class="titulo02"><a href="#" onClick="incluir('exibe_eventos.php?noticia=<?php echo("$titulo"); ?>');"></a></span><br /><br />

 

<?php

}

} else {

print("<span class=\"texto_erro\">Erro no Banco de Dados - Entre em contato com a AlienDP.com.br (adm@aliendp.com.br)!!! </span> <br>".mysql_error());

}

?>

Share this post


Link to post
Share on other sites

Exemplo:

 

 

<script language="javascript" src="http://www.prototypejs.org/assets/2007/11/6/prototype.js"></script>
<script>
function incluir(){
	var url = 'exibe_eventos.php'; // url que será solicitada
	var pars = 'noticia=1'; // nome da variave e valor, pode ser passado por parametro ou pegar o valor de algum input
	var myAjax = new Ajax.Updater( 'div_sera_atualizada', url, { method: 'get', parameters: pars }); // executa a solicitacao e retorna o innerHTML para a div div_sera_atualizada
}
</script>
<div id="div_sera_atualizada"></div>

Att,

 

Orides.

Share this post


Link to post
Share on other sites

Esse é o arquivo include.php

 

<?php

$pagina =$_GET['variavel'];

include($pagina);

?>

Esse aqui é o javascript que fica na página principal

<script>

var myConn = new XHConn();

if (!myConn) alert("deu erro aqui.");

var inclusao = function (oXML) { document.getElementById('include').innerHTML = oXML.responseText; };

function incluir (url)

{

document.getElementById('include').innerHTML = "<div class='loading'><img src='loading.gif' /></div>";

myConn.connect("include.php", "GET", "variavel="+url, inclusao);

}

</script>

 

Esse é o arquivo XHConn.js

 

function XHConn()

{

var xmlhttp, bComplete = false;

try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }

catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }

catch (e) { try { xmlhttp = new XMLHttpRequest(); }

catch (e) { xmlhttp = false; }}}

if (!xmlhttp) return null;

this.connect = function(sURL, sMethod, sVars, fnDone)

{

if (!xmlhttp) return false;

bComplete = false;

sMethod = sMethod.toUpperCase();

 

try {

if (sMethod == "GET")

{

xmlhttp.open(sMethod, sURL+"?"+sVars, true);

sVars = "";

}

else

{

xmlhttp.open(sMethod, sURL, true);

xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");

xmlhttp.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded");

}

xmlhttp.onreadystatechange = function(){

if (xmlhttp.readyState == 4 && !bComplete)

{

bComplete = true;

fnDone(xmlhttp);

}};

xmlhttp.send(sVars);

}

catch(z) { return false; }

return true;

};

return this;

}

 

O arquivo exibe_eventos.php é

 

<?php

$consulta_sql = mysql_query("SELECT * FROM eventos WHERE imagem=1 ORDER BY codigo ASC LIMIT 0,3");

if($consulta_sql){

while($row = mysql_fetch_array($consulta_sql)){

$id = $row['id'];

$diretorio = $row['diretorio'];

$titulo = $row['titulo'];

$dia = $row['dia'];

$horario = $row['horario'];

$local = $row['local'];

$cidade = $row['cidade'];

$estado = $row['estado'];

$secao = $row['secao'];

$conteudo = $row['conteudo'];

$codigo = $row['codigo'];

?>

 

<a href="#" onClick="incluir('exibe_eventos.php?noticia=<?php echo("$id"); ?>');">

<img src="imx_eventos.php?foto=admin/eventos/<?php echo("$diretorio"); ?>" alt="<?php echo("($titulo"); ?>" style="border:0"></a>

<br />

<span class="titulo02"><a href="#" onClick="incluir('exibe_eventos.php?noticia=<?php echo("$titulo"); ?>');"></a></span><br /><br />

 

<?php

}

} else {

print("<span class=\"texto_erro\">Erro no Banco de Dados - Entre em contato com a AlienDP.com.br (adm@aliendp.com.br)!!! </span> <br>".mysql_error());

}

?>

 

kd a função incluir???

Share this post


Link to post
Share on other sites

Orides me auxilia no seguinte:

 

Aqui:

 

function incluir(){

var url = 'exibe_eventos.php'; // url que será solicitada

var pars = 'noticia=1'; // nome da variave e valor, pode ser passado por parametro

Você especifica noticia=1, mas esse valor é dinâmico, o número 1 é o ID do evento no banco de dados!

 

Como ficaria entao nesse caso?

 

 

 

 

AQUI É A FUNÇÃO INCLUIR

<script>

var myConn = new XHConn();

if (!myConn) alert("deu erro aqui.");

var inclusao = function (oXML) { document.getElementById('include').innerHTML = oXML.responseText; };

 

function incluir (url)

{

document.getElementById('include').innerHTML = "<div class='loading'><img src='loading.gif' /></div>";

myConn.connect("include.php", "GET", "variavel="+url, inclusao);

}

 

</script>

Share this post


Link to post
Share on other sites

Orides me auxilia no seguinte:

 

Aqui:

 

function incluir(){

var url = 'exibe_eventos.php'; // url que será solicitada

var pars = 'noticia=1'; // nome da variave e valor, pode ser passado por parametro

Você especifica noticia=1, mas esse valor é dinâmico, o número 1 é o ID do evento no banco de dados!

 

Como ficaria entao nesse caso?

 

 

 

 

AQUI É A FUNÇÃO INCLUIR

<script>

var myConn = new XHConn();

if (!myConn) alert("deu erro aqui.");

var inclusao = function (oXML) { document.getElementById('include').innerHTML = oXML.responseText; };

 

function incluir (url)

{

document.getElementById('include').innerHTML = "<div class='loading'><img src='loading.gif' /></div>";

myConn.connect("include.php", "GET", "variavel="+url, inclusao);

}

 

</script>

 

hehhe...foi malze...

passa como parâmetro na função do Orides os valores....

Share this post


Link to post
Share on other sites

A questão é como passar por paramêtros, buscando do banco de dados!

 

Eu nunca consegui inserir valores do mysql dentro do javascript.

Share this post


Link to post
Share on other sites

<script language="javascript" src="http://www.prototypejs.org/assets/2007/11/6/prototype.js"></script>

<script>

function incluir(id){

var url = 'exibe_eventos.php'; // url que será solicitada

var pars = 'noticia='+id; // nome da variave e valor, pode ser passado por parametro ou pegar o valor de algum input

var myAjax = new Ajax.Updater( 'div_sera_atualizada', url, { method: 'get', parameters: pars }); // executa a solicitacao e retorna o innerHTML para a div div_sera_atualizada

}

</script>

<div id="div_sera_atualizada"></div>

<a href="java script:;" onClick="incluir('<?=$id?>')">Incluir</a>

 

O javascript ai encima é tudo junto.

Share this post


Link to post
Share on other sites

Orides, funcionou perfeitamente... valeu mesmo!!!

 

Merece uma coca cola bem gelada!

 

Abraços a todos!

Share this post


Link to post
Share on other sites

Alguem sabe como devo fazer para carregar uma pagina com alguns links em javascript?

 

Estou tentando carregar uma página, a página até é carregada, mas ela não busca os dados no banco de dados.

 

Link: <a href="#" onClick="incluir('galeria.php');" >Fotos</a>

 

Se eu acessar http://www.djlazaro.com.br/galeria/index.php , a página é carregada!

 

Mas se eu tentar acessar a página através do site, ela não é carregada!

 

Eu acho que o erro está acontecendo apenas porque para exibir os dados, é necessario o uso de variaveis.

E o ajax não deixa a página utilizar!

 

Será que existe alguma forma de corrigir esse erro?

Esse é o código onde estão as variáveis:

 

<a href="java script:AbreJanelaGaleria('galeria/janela.php?dir=images/galeria/<?php echo "$dados[pasta]/&id=$dados[id]&evento=$dados[nome]&data=$dados[data]&local=$dados[local]&id=$dados[id]&fotografo=$dados[fotografo]";?>')">

 

<img class="img_galeria" src="galeria/imagemdimindex.php?imagem=images/galeria/<?php echo $dados['pasta']?>/<?php echo $dados['foto01']?>" >

Share this post


Link to post
Share on other sites

Acabei de ler que não posso usar nenhum função do javascript na página que será carregada dentro da div!

 

Mas a questão é que eu preciso carregar esse link, que abrirá a página num pop-up.

Share this post


Link to post
Share on other sites

Resolvido ???

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.