Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
}
}
});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!';
}
?>Testei o script e funcionou.
Coloca as páginas no mesmo diretório pra testar. Veja se o problema não está aqui ../'. $page .'.php'.
Baixe os códigos originais desse modelo:
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
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
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..
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.