Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
OLá amigos, estou usando esse pequeno script postado pelo usuário Dii.
A questão é a seguinte, no firefox não exibe certos caracteres, por exemplo, "Rádio" fica "R�dio". já arrumei o charset do arquivo page.php porém não deu certo.
Vamos ao meu código.
Exibindo e carregando dentro da div
<script type='text/javascript'>
$(document).ready(function(){
$('#navHolder a').live('click',function(){
$('#contentContent').load($(this).attr('href'));
return false;
});
});
</script>
Arquivo page.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="robots" content="noindex,nofollow" />
<title></title>
<script type="text/javascript">
$(document).ready(function() {
$(".iframe").fancybox({
'width' : '100%',
'height' : '100%',
'autoScale' : false,
'transitionIn' : 'none',
'transitionOut' : 'none',
'type' : 'iframe'
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
$(".iframeEventos").fancybox({
'width' : '75%',
'height' : '75%',
'autoScale' : false,
'transitionIn' : 'none',
'transitionOut' : 'none',
'type' : 'iframe'
});
});
</script>
</head>
<body>
<?php
include('includes/incl.all.php');
$pagina = (isset($_GET["route"]) ? $_GET["route"] : "home");
$pagina = str_replace('.','/',$pagina);
$arquivo = "paginas/{$pagina}.php";
if (file_exists($arquivo) == true) { include($arquivo);} else { include ("paginas/erro.php");
}
?>
</body>
</html>
Bom, é isso ai, não sei porque não tá funcionando, se alguem puder me ajudar, agradeço!
Olá william, obrigado pela resposta.
Mas acho que não entendi direito,
O charset padrão do jquery é utf-8 certo?
Então como posso setar o charset brasileiro através de header?
Edit, seu blog me ajudou! Mas no IE ainda não deu resultado.
forcei o header na pagina page.php, que dá include nas outras paginas
>
Edit, seu blog me ajudou! Mas no IE ainda não deu resultado.
bacana :lol:
qual o teu problema com o IE ainda ?
Olhando aqui outra vez parece que resolveu o problema, acho que não dei reload no IE e não vi que tinha arrumado.
Só que retorna o erro headers already sent.
Só mais uma coisinha, como eu mando carregar uma pagina padrão dentro da div? :D
E inserir uma barra de carregamento?
Abraços
da forma 'idiota':
$(document).ready(function(){
$('#contentContent').load( 'pagina-padrao.html' );
$('#navHolder a').live('click',function(){
$('#contentContent').load($(this).attr('href'));
da forma inteligente ?
deixa isso no html uai. Deixa a tua pagina padrao carregar usando html puro ou php.
=)
para a barra de carregamento, você não vai conseguir contar as porcentagens que qnto já carregou.
mas se trocar o .load() por $.ajax() vai conseguir exibir um .gif animado até que o conteudo venha.
Willian, a forma que você faz no blog, não funciona perfeitamente pra mim.
A minha programação é includes e utiliza o jquery para exibição, dentro da div "content" tenho que executar varias querys e para exibição tambem uso o jquery, só que retorna o erro "headers already sent by" pois o include fica no meio do html.
Enfim, existe outro meio de fazer isso?
Sobre, o "$.ajax()", eu carrego o gif entre () ?
PS.: Link para o sistema
Abraços
só que retorna o erro "headers already sent by" pois o include fica no meio do html.
isso é por outro motivo.
Erro de php, nada a ver com javascript.
Sobre, o "$.ajax()", eu carrego o gif entre () ?
dá uma olhada na documentação:
você vai carregar o gif, assim que o click for disparado, e remover ele no success do $.ajax().
Tão simples qnto isso.
Ok, vou procurar e montar o código, assim que pronto edito aqui pra quem precisar.
Mas sobre o erro do php, não seria errado enviar headers outra vez? Devo estar errado, mas isso não seria uma "gambiarra"?
Estou procurando bastante, mas parece que esse é o unico meio mesmo.
Pra quem precisar achei uma material interessante (http://www.maujor.com/blog/2009/02/03/requisicao-ajax-com-o-metodo-load-da-jquery/)
>
Mas sobre o erro do php, não seria errado enviar headers outra vez? Devo estar errado, mas isso não seria uma "gambiarra"?
sim, é errado enviar headers depois de outputs.
mas ajax por si só não faz isso. Esse erro é isolado do processo.
Mostre o erro, e as linhas que ele aponta, ai lhe explico.
Opa, para explicar melhor:
Warning: Cannot modify header information - headers already sent by (output stared at /home/radioventilador/www/page.php:1) in /home/radioventilador/www/page.php on line 26
Linha 26:
header ('Content-type: text/html; charset=iso-8859-1');
Código Inteiro:
<?php
header ('Content-type: text/html; charset=iso-8859-1');
include('includes/incl.all.php');
$pagina = (isset($_GET["route"]) ? $_GET["route"] : "home");
$pagina = str_replace('.','/',$pagina);
$arquivo = "paginas/{$pagina}.php";
if (file_exists($arquivo) == true) { include($arquivo);} else { include ("paginas/erro.php");
}
?>Abra no teu editor, e salve o documento em Latin ISO
aparentemente atualmente está em UTF8 COM BOM.
Olá, uso o Notepad++ e não tem esse charset.
Meu documento está codificado em ANSI.
Obrigado, Abraços
Como não dá pra editar meu post..
Bom, a solução que encontrei foi usar a função uft8_encode (caso use php)
Exemplo pra quem precisa:
<?php
$var = 'Johnson é um dos músicos mais'
echo $var; //Com load do jquery irá imprimir "Johnson � um dos m�sicos mais"
echo uft8_encode($var); //Resultado Johnson é um dos músicos mais
?>
Vi alguns caracteres que ainda assim saiu "bugado", mas acho que essa solução é o suficiente pro meu problema.
você ta fazendo um ajax.
o ajax do jquery é utf8
está havendo um conflito com a tua pagina que é em ISO. Sete alguns headers com o php do charset.