Ir para conteúdo

POWERED BY:

Arquivado

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

azeredo

iniciando no ajax.. acho que está funcionando...

Recommended Posts

bom pessoal...

depois de ler, tutorias e tópicos daqui.. decidi me aventurar no ajax.....

tentei implementar no meu site, seguindo este tutorial....

http://www.tableless.com.br/artigos/ajaxdemo2/

 

os arquivos ajax.ps e funcoes.php são o do artigo anteiror dele.. akax para quem ouvi falar.. alguma coisa assim....

com algumas modificaões.....

index.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" /><link href="estilos/estrutura.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="ajax/ajax.js"></script><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script><script type="text/javascript">_uacct = "UA-1180133-1";urchinTracker();</script></head><body><?php	include("ajax/funcoes.php");		//Lê o parâmetro i (índice do conteúdo)	$i="principal";	if(isset($_GET["p"]))$i=$_GET["p"];	/*$p = $_GET["p"];	if (!$p) $p="principal";*/?><div id="tudo"><div id="topo">	<div id="logo">		<table width ="400" align="left" border="0">			<tr>	 			<td><img src="/imagens/logo.png" /></td>											</tr>		</table>	</div>	<div id="saudacao">		<?php include("saudacao.php") ?>			</div>	<div id="menutopo">		<?php include("topo.php") ?>	</div>	  </div><div id="principal"><?=leconteudo($i)?><?php	//if (file_exists("$p.php")) include("$p.php"); else include("404.php");?></div><div id="navegacao"><?php include("menu.php") ?></div><div id="rodape"><div align="right"><?php include("rodape.php") ?></div></div></div></body></html>
funcoes.phpp (do ajax)

<?/*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.php");}//Insere class="selected" se n=ifunction classi($n){	global $p;	if($n==$p)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("principal")	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("principal")			conteudo.innerHTML=texto			//Obtém os links do menu			var menu=document.getElementById("navegacao")			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("navegacao")	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
acontece que... acho que não deve estar funcionando.. pois não aparece o "Carregando..." etb ao clicar em algum link não atualiza apeas a div principal.. e sim o site todo novamente... no index do artigo, o link tem isso aqui

<li><a href="?i=1"<?classi(1)?> title="Parte 1">Introdução</a></li>
no meu não pus esse classi(1)... pois quando coloquei tirou todo o css do menu....

 

e tb quando acesso enviar_foto no menu fotos... aparece isso...

Envia_Arquivo(); ?>
e tb bagunçou o select.. não tá pegando mais do banco os álbuns cadastrados.......isso não acontece quando deixo o index do modo normal com a parte que está comentado "mandando"....

esse enviar_arquivo deve estar pegando do arquivo class_upload

<?php	set_time_limit(0);	include "funcoes.php";	class Upload {		var $arquivo = "";		var $erro = array ( "0" => "upload execultado com sucesso!",							"1" => "O arquivo é maior que o permitido pelo Servidor",							"2" => "O arquivo é maior que o permitido pelo formulario",							"3" => "O upload do arquivo foi feito parcialmente",							"4" => "Não foi feito o upload do arquivo");				function Verifica_Upload() {			$this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;			if(!is_uploaded_file($this->arquivo['tmp_name'])) {				return false;			}			$get = getimagesize($this->arquivo['tmp_name']);						if(($get["mime"] != "image/jpeg") AND ($get["mime"] != "image/gif") AND ($get["mime"] != "image/png")) {				echo "<span style=\"color: white; border: 0; background: red;\">Esse foto nao é uma imagem valida</span>";				exit;			}			return true;		}				function Envia_Arquivo() {			if($this->Verifica_Upload()) {				$this->gera_fotos();				return true;				} else {					echo "<span style=\"color: white; border: 0; background: red;\">".$this->erro[$this->arquivo['error']]."</span>";			}		}				function gera_fotos() {			$diretorio = "fotos/";			$diretorio_g = "fotos/g/";			$diretorio_p = "fotos/p/";			if(!file_exists($diretorio)) {				mkdir($diretorio);			}			if(!file_exists($diretorio_g)) {				mkdir($diretorio_g);			}			if(!file_exists($diretorio_p)) {				mkdir($diretorio_p);			}						$get2 = getimagesize($this->arquivo['tmp_name']); /* Vai servir para verificar se eh GIF ou JPG ou PNG*/			$aux_tipo_imagem = $get2["mime"]; /* Vai servir para verificar se eh GIF ou JPG ou PNG*/						if ($aux_tipo_imagem == "image/jpeg") {				$nome_foto  = "imagem_".time().".jpg";				$nome_thumb = "thumb_".time().".jpg";				//determino uma resolução maxima e se a imagem for maior ela sera reduzida				reduz_imagem_jpg($this->arquivo['tmp_name'], 800, 600, $diretorio_g.$nome_foto);				//passo o tamanho da thumbnail				reduz_imagem_jpg($this->arquivo['tmp_name'], 90, 60, $diretorio_p.$nome_thumb);			}						if ($aux_tipo_imagem == "image/gif") {				$nome_foto  = "imagem_".time().".gif";				$nome_thumb = "thumb_".time().".gif";				//determino uma resolução maxima e se a imagem for maior ela sera reduzida				reduz_imagem_gif($this->arquivo['tmp_name'], 400, 300, $diretorio_g.$nome_foto);				//passo o tamanho da thumbnail				reduz_imagem_gif($this->arquivo['tmp_name'], 120, 90, $diretorio_p.$nome_thumb);			}						if ($aux_tipo_imagem == "image/png") {				$nome_foto  = "imagem_".time().".png";				$nome_thumb = "thumb_".time().".png";				//determino uma resolução maxima e se a imagem for maior ela sera reduzida				reduz_imagem_png($this->arquivo['tmp_name'], 400, 300, $diretorio_g.$nome_foto);				//passo o tamanho da thumbnail				reduz_imagem_png($this->arquivo['tmp_name'], 120, 90, $diretorio_p.$nome_thumb);			}						echo "<span style=\"color: white; border: 0; background: purple;\">".$this->erro[$this->arquivo['error']]."</span>";					   						$teste_post = isset($_POST['comentario']) ? $_POST['comentario'] : '';			if (empty($teste_post)) {				$comentario = "Foto enviada por Celular!";			}			else			{   				$comentario = $_POST['comentario'];			}			$album = $_POST['album'];			$sql_ultimocod = "select Codigo from fotos order by Codigo desc";			$consulta_ultimocod = mysql_query($sql_ultimocod);			$linha_ultimocod = mysql_fetch_array($consulta_ultimocod);			$cod = $linha_ultimocod['Codigo'] + 1;						$nome_foto = $diretorio_g . $nome_foto;			$nome_thumb = $diretorio_p . $nome_thumb;						mysql_query("INSERT INTO fotos (Codigo, Album, Local, Comentario, Thumb) VALUES ($cod, $album, '$nome_foto', '$comentario', '$nome_thumb')");					}	}?>

bom, depois deste imenso topico...... alguma idéia do que pode estar acontencedo?

esqueci de alterar algo nos arquivos do "ajax"...

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, com um post do Alisson Rodrigues lá no PHP, sobre a função file_get_contents... deve ser por isso que está dando erro no que é php do site....

pois não está executando os comandos......

qual outra função devo usar aqui?? no funcoes.php lá de cima...

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

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

dude eu manjo de php porem infelizmente naum tenho o tempo necessário para ler seu código pq sei q o problema está no javascript então vou postar aki ainda hoje um material de ajax com php muito simples e depois q você le podemos usalo para fazer oq você quer de verdade!!ainda hoje posto o material!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

da uma olhada neste link

 

http://www.gabbay.com.br/upload/arquivos/index.php

 

eu acabei de fazer!!

 

o index.php

<?php	if(isset($_REQUEST["action"])) {		switch ($_REQUEST["action"]) {						case "showName":				if(isset($_REQUEST["ajax"])){					$email = urldecode($_REQUEST["email"]);					switch ($email) {						case "mr.void@gmail.com":							echo "Hudson Afonso";							break;												case "hudson.afonso@gmail.com":							echo "Hudson Afonso | Consultor SAP NetWeaver";							break;													default:							echo $email;					}				}				break;						case "getName":				if(isset($_REQUEST["ajax"])){					$email = urldecode($_REQUEST["email"]);					switch ($email) {						case "mr.void@gmail.com":							echo "Hudson Afonso";							break;												case "hudson.afonso@gmail.com":							echo "Hudson Afonso | Consultor SAP NetWeaver";							break;													default:							echo "Email não encontrado!";					}				}				break;						}		exit();	}?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>	<head>		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />		<title>Ajax</title>				<script src="global.js" type="text/javascript"></script>		<script src="index.js" type="text/javascript"></script>			</head>	<body>		<h1>Ajax</h1>		<ul>			<li><a href="#" class="funcShowName">mr.void@gmail.com</a></li>			<li><a href="#" class="funcShowName">hudson.afonso@gmail.com</a></li>		</ul>		<br>		<form class="funcGetName" method="post" action="index.php?action=getName">		<label for="email">Nome: </label><input type="text" name="email" id="email"> <button type="submit">submit</button>		</form>	</body></html>

o resto da para pegar na url!!

 

é bem simples e facil o código mas dai podemos fazer coisas mais complicadas e complexas!!

 

the void

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw void... vou dar uma estudado no seu código hoje a noite... e post qualquer dúvida aki daí....e esses arquivos??... <script src="global.js" type="text/javascript"></script> <script src="index.js" type="text/javascript"></script>Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw void.... não tinha "pensado" no link.. ehehevou estudar.. e surgindo dúvidas.. posto aqui...Vlw mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa... não consegui fazer funcionar em casa.... dá erro na página ao clicar no submit.......então peguei o link index.php?action=getName&ajax=yes e deu esta mensagem antes de exibir (Email não encontrado)...... Notice: Undefined index: email in C:\Apache\htdocs\testes\ajax\index.php on line 25, a linha em questão é esta $email = urldecode($_REQUEST["email"]);vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

é sua configuracao do php troca o $_REQUEST[] por $_GET[]

Compartilhar este post


Link para o post
Compartilhar em outros sites

troquei por $_GET mas continua não fazendo nada ao clicar no link, ou no botão submit.......vou procurar como configurar o php.ini para funcionar com $_REQUEST.....troquei por $_GET mas continua não fazendo nada ao clicar no link, ou no botão submit.......vou procurar como configurar o php.ini para funcionar com $_REQUEST.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

pera ai você foi la e pegou os js da url q te passei tem q ter tudo!! só o index.php nuam vai funfar!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehe... peguei sim... coloquei no mesmo diretório do index.php, os index.js e o global.js, e as imagens tb.....mas não alteirei nada neles não......a única coisa q alterei foi de REQUEST para GET....e pelo que li... é só por register_globals on?? para o request funcionar???

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum naum me lembro faz mor cara q eu naum mecho com php!! hoje é so java e jsp!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

para quem tá acompanhando o tópico... ali no index.php o void achou o que estava faltando....andes </body> falta<div id="loading"></div><div id="ajaxerror" class="errors"><p></p></div>flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso aqui...

<li><a href="#" class="funcShowName">mr.void@gmail.com</a></li>

 

esse class ="funcShowName" está chamando a função do arquivo php?? ou do index.js???

 

essas coisas que ainda não to conseguindo entender....

 

sem falar do global.js....

 

o que roda primeiro?? o global ou o index.js??

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.