Ir para conteúdo

POWERED BY:

Arquivado

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

fsilvarib

Modificação de Script

Recommended Posts

Tudo bom pessoal?

 

Eu não sei nada de PHP, Java, Ajax e outras coisas.

 

Consegui esse script do site do Tableless sobre ajax, mas pelo que eu entendi

esse site Ajax esta de um forma que você só pode definir números às páginas, só não sei se o que eu estou falando está certo.

Mas será que existe a possibilidade de mudar isso?

Tipo eu defino o nome da página normal ao invés de números.

 

Por favor se alguem souber de alguma coisa me ajude por favor.

 

Abaixo vai os códigos.

 

index.php

<?include("funcoes.php");//Lê o parâmetro i (índice do conteúdo)$i=1;if(isset($_GET["i"]))$i=intval($_GET["i"]);?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt"><head><title>Tableless - Ajax Demo</title><meta name="resource-type" content="document" /><meta http-equiv="content-type" content="text/html; charset: iso-8859-1" /><link rel="shortcut icon" href="/favicon.ico" /><link rel="stylesheet" type="text/css" href="estilo.css" title="Padrão" /><link rel="alternate stylesheet" type="text/css" href="estilo2.css" title="Verde Django" /><link rel="stylesheet" type="text/css" href="print.css" media="print" /><script type="text/javascript" src="ajax.js"></script></head><body><h1>Ajax para quem só ouviu falar</h1><div id="menu">	<ol>		<li><a href="?i=1"<?classi(1)?> title="Parte 1">Introdução</a></li>		<li><a href="?i=2"<?classi(2)?> title="Parte 2">Objetivos</a></li>		<li><a href="?i=3"<?classi(3)?> title="Parte 3">Site comum</a></li>		<li><a href="?i=4"<?classi(4)?> title="Parte 4">Obter o conteúdo</a></li>		<li><a href="?i=5"<?classi(5)?> title="Parte 5">Construindo a aplicação</a></li>		<li><a href="?i=6"<?classi(6)?> title="Parte 6">Fazendo acontecer</a></li>		<li><a href="?i=7"<?classi(7)?> title="Parte 7">Conselhos finais</a></li>		<li><a href="?i=fabio"<?classi(fabio)?> title="Parte 8">teste</a></li>	</ol></div><div id="conteudo">	<?=leconteudo($i)?></div><div id="rodape"><a href="http://elcio.com.br" title="Elcio Ferreira">Elcio Ferreira</a> * <a href="http://www.tableless.com.br" title="Tableless.com.br">Tableless.com.br</a></div></body></html>
funcoes.php

<?/*Lê o conteúdo de índice n. Aqui estou lendo de arquivoshtml no disco, para não perdermos tempo com coisas quefogem ao escopo do artigo. No mundo real, geralmente vocêvai ler isso aqui do banco de dados, ou usar uma funçãopronta disponibilizada por seu CMS.*/function leconteudo($n){	return file_get_contents("$n.html");}//Insere class="selected" se n=ifunction classi($n){	global $i;	if($n==$i)echo ' class="selected"';}/*Essa aqui é a parte necessária para o Ajax. Se estearquivo for chamado sozinho, recebendo um parâmetron, ele retorna o texto de índice n. Passa pelafunção urlencode por causa dos bugs do MSXML comacentos (valeu mais uma vez, Bill!)*/if(isset($_GET["n"])){	$t=leconteudo(intval($_GET["n"]));	echo(urlencode($t));}?>
ajax.js

try{	xmlhttp = new XMLHttpRequest();}catch(ee){	try{		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");	}catch(e){		try{			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");		}catch(E){			xmlhttp = false;		}	}}atual=0function carrega(n){	//Exibe o texto carregando no div conteúdo	var conteudo=document.getElementById("conteudo")	conteudo.innerHTML='<div class="carregando">carregando...</div>'	//Guarda a página escolhida na variável atual	atual=n	//Abre a url	xmlhttp.open("GET", "funcoes.php?n="+n,true);	//Executada quando o navegador obtiver o código	xmlhttp.onreadystatechange=function() {		if (xmlhttp.readyState==4){			//Lê o texto			var texto=xmlhttp.responseText			//Desfaz o urlencode			texto=texto.replace(/\+/g," ")			texto=unescape(texto)			//Exibe o texto no div conteúdo			var conteudo=document.getElementById("conteudo")			conteudo.innerHTML=texto			//Obtém os links do menu			var menu=document.getElementById("menu")			var links=menu.getElementsByTagName("a")			//Limpa as classes do menu			for(var i=0;i<links.length;i++)				links[i].className=""			//Marca o selecionado			links[atual-1].className="selected"		}	}	xmlhttp.send(null)}function menuclick(e){	//Correção para eventos quebrados da Microsoft	if(typeof(e)=='undefined')var e=window.event	source=e.target?e.target:e.srcElement	//Correção para o bug do Konqueror/Safari	if(source.nodeType==3)source=source.parentNode	//Obtém o número quebrando a url	n=source.getAttribute("href").replace(/.*=/,"")	//Chama o carrega	carrega(parseInt(n))	//Cancela o click (evita a navegação)	return false}function init(){	//Obtém os links do menu	var menu=document.getElementById("menu")	var links=menu.getElementsByTagName("a")	//Atribui o evento	for(var i=0;i<links.length;i++)		links[i].onclick=menuclick}if(xmlhttp)window.onload=init

Muito obrigado pela ajuda de todos.

 

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não há problema. as páginas podem ter nome texto também.

mas ali ele só chama arquivos html. ou seja,

minhaPagina.html

pagina.html

 

você pode mudar

function leconteudo($n){	return file_get_contents("$n.html");}

para

function leconteudo($n){	return file_get_contents("$n");}

e usar o nome inteiro como:

huaihasi.asp

kofkof.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu to com o mesmo problema que ele, eu mudei oq você falou, mas e agora no link, como fica? antes era: <li><a href="?i=1"<?classi(1)?> title="Parte 1">Introdução</a></li> e agora?Nao to conseguindo linkas, da esse erro: Warning: file_get_contents(0.php) [function.file-get-contents]: failed to open stream: No such file or directory in /home/xxx/public_html/funcoes.php on line 11[]´z

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem, no seu link, ele está chamando:

href="?i=1"
Essa página não existe.

Você deve coloca algo como:

href="minhaPagina.php"

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.