Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera estou com seguinte erro na paginação por ajax.
Ele apenas está listando as páginas em .php , se tiver noticias.php?id=1 ele não lista a página e da o seguinte erro: Fatal error: require() [function.require]: Failed opening required '?pg=4.php' (include_path='.;C:\php5\pear') in C:\AppServ\www\ajax.php on line 4
Códigos que estou ultizando:
<script>
function ajaxInit(){
var xmlhttp;
try{ xmlhttp = new XMLHttpRequest(); }
catch(ee) {
try{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {
try{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
catch(E){ xmlhttp = false ; }
}
}
return xmlhttp;
}
function carregar(pagina, local){
$(local).html('<img src="img/loading.gif" class="gif_load" width="126" height="22" />');
ajax = ajaxInit();
if(ajax){
ajax.open('POST', 'ajax.php', true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function(){
if(ajax.readyState == 4){
$(local).html('<img src="img/loading.gif" class="gif_load" width="126" height="22" />');
if(ajax.status == 200){ $(local).html(ajax.responseText); }
}
}
ajax.send('pg='+pagina);
}
}
$(document).ready(function(){
$('a.link-ajax').click(function(e){ carregar(this.id, '#ajax_div'); });
});
</script>
<?php
session_start();
header("Content-Type: text/html; charset=iso-8859-1",true);
require($_POST['pg'].'.php');
?>
Obrigado.
No arquivo ajax.php, qual a sua intenção?
Você quer que ele vá incluindo as páginas de acordo com o número? Tipo 1.php depois 2.php ...3.php e assim por diante?
Se for isso, altere a linha abaixo, senão explique melhor o que você quer.
require(str_replace('?pg=', '', $_POST['pg']).'.php');
@jhrhp muito obrigado pela a sua reposta.
As páginas como home.php , contato.php , eventos.php são lista normalmente pela a paginação , só que as consulta pelo modo POST ou GET não são listadas EX: Exibir noticias em geral_ver.php?ID=1 , o que me retorna é isso geral_ver.php?ID=1.php , só que a página 1.php não existe , então teria que remover o .PHP depois de ?ID=1 para a consulta fosse retornada.
E também crie um novo arquivo ajax.php usando desta forma
require($_POST['pg']); removendo o .PHP , mais não deu certo o scprit do ajax lista geral_ver.php?ID=1 como se fosse um página como a home .
Abaixo vou lista o link da href:
<a href="#geral_ver.php?ID=<?=$insert['ID']?>" target="_self" id="geral_ver.php?ID=<?=$insert['ID']?>" class="link-ajax">
@up ,Alguem ?
@upspam , alguém poderia me ajudar ? Não consigo resolver o problema estou a 3 dias tentando é sem sucesso , Obrigado !
Comece do básico, postando na área correta, está caro que o seu problema é no JS, não no PHP.
@ESerra, creio eu que os erros acontecem de ambos os lados , mais enfim , poderia me ajudar ?
Claudineii, tudo na vida é uma questão de tentar usar um pouco o cérebro, o erro:
Failed opening required '?pg=4.php'
No PHP:
require($_POST['pg'].'.php');
Logo usando um pouco de raciocínio se chega a conclusão óbvia que e $_POST['pg'] tem o valor de '?pg=4', ótimo, onde está o problema:
1 - Dos dois lados?
2 - Do lado do PHP?
3 - Do lado do JS?
Exato! DO LADO DO JS!
Agora, indo mais um pouco ao ponto, de onde está vindo toda essa coisa nesse seu script macarrônico?
ajax.send('pg='+pagina);
Ai você está disparando o POST... e de onde está vindo pagina que alimenta o $_POST['pg']? Da chamada da função, ou seja, você está chamando a função assim:
carregar('?pg=4', 'alguma coisa que não vem ao caso no problema em questão');
A gambiarra do "?" até funcionaria se não usasse AJAX, mas ele não adivinha a "própria página", ou seja, você deve passar:
carregar('PAGINA_QUE_VAI_SER_CARREGADA.php?pg=4', 'alguma coisa que não vem ao caso no problema em questão');
Agora no PHP você remove aquele .php que está junto do require, pois isso já está sendo passado no ajax...
Obrigado.
@double post , alguem poderia me ajudaaar ?