Ir para conteúdo

POWERED BY:

Arquivado

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

reif

[Resolvido] Jquery + Ajax + DataType

Recommended Posts

Fala pessoal tudo bom ?

Estou usando o jquery + ajax para abrir os conteudos no meu site.. porém pude perceber q não consigo abrir paginas com codigos em php.. algm saberia resolver o problema ?

$.ajax({        //create an ajax request to load_page.php
                type: "POST",
                url: "scripts/load_page.php",
                data: 'page='+url,      //with the page number as a parameter
                dataType: "html",       //expect html to be returned
                success: function(msg){

                        if(parseInt(msg)!=0)    //if no errors
                        {
                                $('#pageContent').fadeIn("slow");
                                $('#pageContent').html(msg);    //load the returned html into pageContet
                                $('#loading').css('visibility','hidden');       //and hide the rotating gif
                        }
                }

        });

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é todo código jquery? Se tiver mais coloca aí.

O que está sendo armazenado na variável "url" aqui (data: 'page='+url,)?

 

Coloca assim:

data : { page:url },

 

No seu código do arquivo php você precisa capturar essa variável com $_POST['page'];

 

Sem o código todo não tem como analisar melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

url vai receber apenas uma string por exemplo.. "about"

 

na url scripts/load_page.php é onde vai o codigo q pega a pagina "about"

 

jquery code:

//CONTENT WITH AJAX
$(document).ready(function(){
	$(".bg").hide();					   
	$(".bg").fadeIn("slow");

	checkURL();	

	$('ul li a').click(function (e){	

			checkURL(this.hash);	

	});

	setInterval("checkURL()",250);	

});

var lasturl="";	
function checkURL(hash)
{
	if(!hash) hash=window.location.hash;	

	if(hash != lasturl)	
	{
		lasturl=hash;	
		loadPage(hash);	
	}
}

function loadPage(url)	
{
	url=url.replace('#',''); 
	$('#loading').css('visibility','visible');	

	$.ajax({	
		type: "POST",
		url: "scripts/load_page.php",
		data: 'page='+url,	
		dataType: "html",	
		success: function(msg){

			if(parseInt(msg)!=0)	
			{
				$('#pageContent').fadeIn("slow");
				$('#pageContent').html(msg);	
				$('#loading').css('visibility','hidden');
			}
		}

	});
}

 

 

PHP CODE ( load_page.php )

<?php

if(!$_POST['page']) die("0");

$page = $_POST['page'];
if(file_exists('../'. $page .'.php')) {
	echo file_get_contents('../'. $page .'.php');
}else{
	echo 'There is no such page!';
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu modifiquei o codigo.. e minhas paginas ( por exemplo: About.php ) tem codigos em php com funções e rotinas etc etc.. e na pagina principal qnd eu faço esse request os codigos em php não funcionm... vem apenas o codigo em php puramente escrito..

 

sacou ?

 

você testou carregar alguma pagina com algum codigo em php ?

 

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente tá acontecendo isso. Eu tinha testado usando texto puro.

Não é bem a solução pra esse problema, mas no meu último trabalho eu coloquei os conteúdos dinâmicos pra serem puxados apenas de uma página fazendo o controle de conteúdo com a função switch(). Testei aqui no seu código e funcionou puxando direto da página load_page.php

Se resolver segue o exemplo testado.

 

load_page.php

<?

if(!$_POST['page']) die("0");

$page = (int)$_POST['page'];

$check = file_exists('bd.db');
$db = new PDO("sqlite:bd.db");

switch ($page) {
    
case '1':


	if (!$check)
	{
		$db->query('create table pessoas (id, nome)');
		$db->query('insert into pessoas values (1, "maria")');
		$db->query('insert into pessoas values (2, "pedro")');
		$db->query('insert into pessoas values (3, "josué")');
	}
	$select = 'select id, nome from pessoas';
	$result = $db->query($select);
	foreach ($result as $row)
	{
		echo $row['id'] . ' - ' .
			 $row['nome'] . "<br>\ ";
	}
	unset($db);
	
break;
	
case '2':

	if (!$check)
	{
		$db->query('create table pessoas (id, nome)');
		$db->query('insert into pessoas values (1, "daniel")');
		$db->query('insert into pessoas values (2, "joaquim")');
		$db->query('insert into pessoas values (3, "marcos")');
	}
	$select = 'select id, nome from pessoas';
	$result = $db->query($select);
	foreach ($result as $row)
	{
		echo $row['id'] . ' - ' .
			 $row['nome'] . "<br>\ ";
	}
	unset($db);
	
break;
	
}

?>

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples ! Resolvi.. não tem nda a ver com o este codigo JQUERY.. ele está perfeito !

qm quiser usar fica ai a dica..

 

o problema estava na pagina PHP ( load_page.php )... eu tava usando o flie_gets_content que joga a pagina em uma string.. eu apenas troquei esse files_get_content por um include ! e funciona perfeito !

 

 

abs..

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.