script para de funcionar quando chamo a pagina por ajax.
Boa tarde galera!
Estou com um problema bem chatinho.
Tenho um script que funciona perfeitamente, porém quando chamo ela por ajax, ela deixa de funcionar.
Na linha 111 do arquivo php eu chamo o script que não funciona quando chamado pelo script que chama nova pagina.
primeiro codigo é o ajax.
segundo é o php.
terceiro é o script que para de funcionar
ate utilizei isso para ver se funcionava, ms não deu jeito.
$("#basepaginas").find("script").each(function(i) {
eval($(this).text());
});
Qualquer coisa é só perguntar, por favor se alguém souber de algo me ajude....desde segunda feira ja mexendo nesse código..e sempre aparece um erro novo kkkkk.
script que chama a nova pagina: esse é o ajax.
<link href="../css/paginacao.css" rel="stylesheet">
<script src="../js/jquery-2.1.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('.buscapagina').on("click",function() {
var last_msg_id = $(this).attr("id");
if(last_msg_id!='end'){
$.ajax({
type: "POST",
url: "consulta/busca_paginacao.php?grupo=<?php echo $codigogrupo?>&nomegrupo=<?php echo $nomegrupo?>",
data: "lastmsg="+ last_msg_id,
beforeSend: function() {
$('.buscapagina').append('carregando!.....');
},
success: function(html){
$("#paginas").remove();
$("#basepaginas").append(html);
$("#basepaginas").find("script").each(function(i) {
eval($(this).text());
});
}
});
}
return false;
});
});
</script>
<div id="basepaginas">
<?php
//seleciona as primeiras 9 postagens do grupo, porem nao imprime, pois elas ja foram chamadas pelo sistema de atualização.
$buscapost=$linkbd->prepare("select * from postagem where grucodigo =:codgru ORDER BY posdthr DESC LIMIT 12");
$buscapost->bindValue(":codgru",$codigogrupo);
$buscapost->execute();
if($buscapost->rowCount() > 0){
for ($i=0; $listapost = $buscapost->fetch(); $i++) {
$id=$listapost['poscodigo'];
}
}else{
}
if($buscapost->rowCount() == 12){?>
<div id="paginas">
<a id="<?php echo $id?>" href="#" class="buscapagina" >Mostrar mais</a>
</div>
<?php
}else{
}?>
</div>
pagina php, essa é a pagina que contem o script, que deixa de funcionar quando chamado pelo ajax. linha 111
<script src="../js/jquery-2.1.1.js" type="text/javascript"></script>
<script src="../js/lertudo_postagem.js" type="text/javascript"></script>
<link href="../css/buscapostagem.css" rel="stylesheet">
<link href="../css/paginacao.css" rel="stylesheet">
<script type="text/javascript">
$(function() {
$('.buscapagina').on("click",function() {
var last_msg_id = $(this).attr("id");
if(last_msg_id!='end'){
$.ajax({
type: "POST",
url: "consulta/busca_paginacao.php?grupo=<?php echo $_GET['grupo']?>",
data: "lastmsg="+ last_msg_id,
beforeSend: function() {
$('.buscapagina').append('carregando!.....');
},
success: function(html){
$("#paginas").remove();
$("#basepaginas").append(html);
$("#basepaginas").find("script").each(function(i) {
eval($(this).text());
});
}
});
}
return false;
});
});
</script>
<script type="text/javascript" language="javascript">
//funcao que efetua cadastro da postagem sem recarregar a pagina
$(document).ready(function(){
$(".btcoment").on('click',function(){
var $parentcom = $(this).parents('#formcoment');// Quando o formulário for enviado, essa função é chamada
// Colocamos os valores de cada campo em uma váriavel para facilitar a manipulação
var grucodcoment = $("#grucodcoment",$parentcom).val();
var postcomcodigo = $("#postcomcodigo",$parentcom).val();
var criacoment = $("#criacoment",$parentcom).val();
$.post('cadastro/proc_comentario.php', {grucodcoment: grucodcoment, criacoment: criacoment, postcomcodigo: postcomcodigo}, function(resposta) {
});
$("#criacoment",$parentcom).val("");
$.get('consulta/busca_comentario_fixo.php',{truecoment:'ok', grupo:grucodcoment, postagem:postcomcodigo},function(respcom) {
$("#"+postcomcodigo).html(respcom);
});
});
});
</script>
<?php
session_start();
include '../banco/conexao.php';
include 'busca_grupo.php';
$codigogrupo=$_GET['grupo'];
//verifica ultima postagem da ultima seleção., e faz o select apartir da mesma.
if(isset($_POST['lastmsg']) &&is_numeric($_POST['lastmsg']))
{
$lastmsg=$_POST['lastmsg'];
$buscapostpg=$linkbd->prepare("select * from postagem where grucodigo =:codgru and poscodigo <:ultimo ORDER BY posdthr DESC LIMIT 12");
$buscapostpg->bindValue(":codgru",$codigogrupo);
$buscapostpg->bindValue(":ultimo",$lastmsg);
$buscapostpg->execute();
?><div id="basepaginasb"><?php
for ($i=0; $listapost = $buscapostpg->fetch(); $i++) {
$id=$listapost['poscodigo'];
$horpos = strtotime($listapost['posdthr']);
$datpos = date("d-m-Y H:i:s", $horpos);
$bscusupos=$linkbd->prepare("select usuid from usuario where usucodigo =:codusu");
$bscusupos->bindValue(":codusu",$listapost['usucodigo']);
$bscusupos->execute();
$nomusupos = $bscusupos->fetch();
?>
<section id="postagem">
<div id="infusupos">
<div id="imgusupos">
</div>
<div id="desusupos">
<div id="spannome">
<?php
echo $nomusupos['usuid'];//nome do usuario que postou
?>
</div>
<div id="spandthr">
<?php
echo $datpos;//data e horario da postagem
?>
</div>
</div>
</div>
<div id="descpost">
<?php
$linhas=substr_count($listapost['posdescri'], '<p>');
if((strlen($listapost['posdescri'])) < 1395 && $linhas < 15){ //se postagem for maior que 1395 caracteres ou 15 linhas aparece o botão ler tudo, e tamanho fixo para div?>
<div class="postajustavel">
<?php
}else{?>
<div id="conteudopost" class="postfixo">
<p class="cfgopc veropc">Ler tudo</p>
<p class="cfgopc invopc">Encolher</p>
<?php
}?>
</br>
<?php
echo $listapost['posdescri'];//lista as postagem do grupo
?>
</br>
</div>
</div>
<div id="imgpost">
</div>
</section>
<?php include '../js/longPolling_comentario.php';//insere os sistema de atualização automatica dos comentarios ?>
<section id="pegainfomouse" class="pegainfomouse">
<section id="basecomentario" class="base<?php echo $listapost['poscodigo'];?>">
<input type="hidden" class="identificapost" value="<?php echo $listapost['poscodigo'];?>" >
<span class="titcoments">Comentários</span>
<section id="<?php echo $listapost['poscodigo'];?>" class="baseinfcoment">
<?php
include '../consulta/busca_comentario_fixo.php';
?>
</section>
</section>
</section>
<section id="baseefetuacoment">
<?php
if($membrogrupo!='nulo'){
include '../conectado/comentario.php';// comentarios efetuados na postagem
}else{}
?>
</section>
<?php
}
?></div><?php
if($buscapostpg->rowCount()==12){
?>
<div id="paginas">
<a id="<?php echo $id?>" href="#" class="buscapagina" >Mostrar mais</a>
</div>
<?php
}else {
?>
<div id="paginas">
<a id="end" href="#" class="buscapagina" >Não existem mais postagens!</a>
</div>';
<?php
}
}
script que é chamado na pagina php, que para de funcionar.
<script type="text/javascript">
//Variavel usada dentro da funcao "busca_automatica()", para que o botao "busca_ajax automática" chame a funcao "busca_automatica()" apenas uma vez.
$(function() {
$('.base<?php echo $listapost['poscodigo'];?>').on("mouseleave",function(){
var $idpostcod = $(this).parents('.pegainfomouse');
var codpostiden = $(".identificapost",$idpostcod).val();
var bloqueio_coment= 0;
if(bloqueio_coment == 0){
//Verifica se a variavel esta com o valor original, evitando que o comando "window.setInterval" seja chamado mais de uma vez.
window.setInterval(buscar_auxiliar_coment(codpostiden), 25000); //Funçao ativada automaticamente de tempo em tempo.
bloqueio_coment = 1; //Muda o valor da variavel, impedindo que o "if" deixe executar novamente o comando "window.setInterval".
}
});
});
$(function() {
$('.base<?php echo $listapost['poscodigo'];?>').on("mouseenter",function(){
var bloqueio_coment= 1;
});
});
var permicao_coment = 1; //Variavel que indicara a permicao da funcao "buscar_auxiliar()"//Funcao que chamara o arquivo "buscar.php" para varrer o banco
//------------------------------------------------------------------------------------
function buscar_auxiliar_coment(valorcod){
//Funcao auxiliar que serve para chamar a funcao "buscar(binario)", mas impedindo que a mesma seja chamada novamente antes de realizar o pedido de busca anterior.
if(permicao_coment != 0){
//Verifica se tem permicao para chamar a funcao "buscar(binario)" (para nao chamar a outra funcao antes que a mesma termine as buscas).
permicao_coment = 0; //Altera a variavel "permicao" para que este "if" não permita que a funcao "buscar(binario)" não seja chamada antes do tempo.
buscarcoment(valorcod); //Chama a funcao "buscar(binario)".
}
}
//------------------------------------------------------------------------------------
function buscarcoment(binario){
var busca_ajax;
//Verificao navegador
if(window.XMLHttpRequest) {
busca_ajax = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
busca_ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
// Arquivo PHP juntamente com o valor digitado no campo, e a função "escape()" converte os caracteres especiais em hexadecimal iniciado por "%".
var url = "consulta/busca_comentario.php?ticket=<?php echo $ticketreal?>&verifica=ok&grupo=<?php echo $codigogrupo?>&pageativa=<?php echo $_GET['idpagegru']?>&nomegrupo=<?php echo $nomegrupo ?>&poscodigo="+binario;
// Chamada do metodo open e envia os dados para o arquivo buscar.php.
busca_ajax.open("Get", url, true);
// Quando o objeto recebe o retorno, chamamos a seguinte função;
busca_ajax.onreadystatechange = function(){
//Aguarda o ajax executar
if(busca_ajax.readyState == 4 && busca_ajax.status == 200) {
//Resposta retornada pelo "buscar.php" via "echo"
var resposta_coment = busca_ajax.responseText;
//Verifica se e um conteudo vazio.
if(resposta_coment != "" && !(resposta_coment.match(/^\s+$/))){
//Criamos uma "div" com o conteudo encontrado dentro e colocamos tudo dentro da tag "p".
$("#"+binario).html(resposta_coment);
$("#"+binario).find("script").each(function(i) {
eval($(this).text());
});
permicao_coment = 1; //Coloca 1 para que a função "buscar_auxiliar()" consiga chamar novamente esta função ("buscar(binario)").
}
else{
permicao_coment = 1; //Caso algo de errado no "if" coloca a permicao para "1", permitindo outra busca nesta funcao ("buscar(binario)") chamada pela função "buscar_auxiliar()"
}
busca_ajax.send(null); //Limpa a variavel para que possa ser novamente criado na proxima execucao
}
}
busca_ajax.send(null); //Limpa a variavel para que possa ser novamente criado na proxima execucao
}
</script>Discussão (3)
Carregando comentários...