Jump to content


Raul Lima

Member Since 23/08/2007
Offline Last Active 18/12/2007, 16:58
-----

Topics I've Started

"reload De Div"

18/12/2007, 14:52

Pessoal seguinte tenho uma tabela como mostrada abaixo, que controle o acesso dos usuários, quando clico em algum checkbox ele via ajax já executa uma ação no banco e me dá uma mensagem em uma div como mostrada.
No exemplo da imagem estou add um usuário, está tudo funcionando perfeitamente.
O que eu queria e ñ estou conseguindo é fazer com que quando ele add ou exclua o usuário, ele dê um reload na div q contem a tabela de usuários, pq do jeito que está ele add o usuário, mas não mostra na tabela, só mostra se eu carrego a página toda novamente.

Posted Image

Função que add usuário, na chamada da função ele envia uma url onde é feito todo o processo no banco...
function addUser(url) {
	ajax = initHttpRequest();
	username = document.form_criar_usuario.nome_novo_usuario.value;
	password = document.form_criar_usuario.senha_novo_usuario.value;
	conf_password = document.form_criar_usuario.conf_senha.value;
	if(username == "" || password == "" || conf_password == "")
		alert("Preencha os campos corretamente!");
	else
	if(password != conf_password) {
		alert("Confirmação de senha não bate com a senha fornecida!");
		document.form_criar_usuario.senha_novo_usuario.value = "";
		document.form_criar_usuario.conf_senha.value = "";
	}
	else {
	url = (url+'&username='+username+'&password='+password);
	ajax.onreadystatechange = function() {
		if(ajax.readyState == 4) {
			if(ajax.status == 200) {
					if(window.ActiveXObject) {
					document.getElementById('resposta_usuario').innerHTML = ajax.responseText;
				}
				else if(document.implementation && document.implementation.createDocument) {
					document.getElementById('resposta_usuario').innerHTML = ajax.responseText;
				}
			}
			else {
				alert('Desculpe houve um problema com a requisição.');
			}
			document.form_criar_usuario.nome_novo_usuario.value = "";
			document.form_criar_usuario.senha_novo_usuario.value = "";
			document.form_criar_usuario.conf_senha.value = "";
		}
	}
	ajax.open('GET', url, true);
	ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	ajax.setRequestHeader("Content-type","text/html; charset=ISO-8859-1");
	ajax.setRequestHeader("encoding","ISO-8859-1");
	ajax.setRequestHeader("Pragma","no-cache");
	ajax.send(null);
	}
}

Pra variar ninguém???

Ajuda Formulário De Contato!

27/08/2007, 15:17

Olá WM!

Seguinte, estou com uma dúvida que pra muitos irá parecer coisa fácil de fazer!
Inclusive procurei no fórum por algo parecido, mas ñ achei nd q se assemelhe a minha dúvida.
Eu tenho um formulario no qual envia um email, quero que tudo rode somente nesta página, que não chame outra página php e que na hora de enviar a mesma carrega um pre-loader e depois diga se foi enviado com sucesso ou não, tudo isso sem carregar o restante da página só aparecendo no lugar do form uma div com o resultado.
Vou postar partes da minha página.

<script type="text/javascript" language="javascript">
function openAjax() {
	var endereco;
	var ajax;
	try{
	ajax = new XMLHttpRequest();
	}catch(ee){
	try{
	  ajax = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
	  try{
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	  }catch(E){
		ajax = false;
	  }
	}
	}
	return ajax;
  }
function mostraResultado(enviado) {
	var exibeResultado = document.getElementByID('resultado');
	var ajax = new openAjax();
	ajax.open('GET',"contato.php",true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	ajax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
	ajax.setRequestHeader("Pragma", "no-cache");
	ajax.onreadystatechance = function () {
		if(ajax.readyState == 2 || ajax.readyState == 3) {
				exibeResultado.innerHTML = "<div id='carregando'><img src='images/loading.gif' alt='Carregando' /><strong>Loading...</strong></div>";
				} else 
				{
			if(ajax.readyState == 4) {
				if(ajax.status == 200) {
				var resultado = document.formulario.enviado;
					if(resultado==1) {
						exibeResultado.innerHTML = "Mensagem enviada com sucesso!";
					}
					else {
						exibeResultado.innerHTML = "Ocorreu um erro. Tente novamente mais tarde!";
					}
				} else {
					exibeResultado.innerHTML = "Ocorreu um erro. Tente novamente mais tarde. ";
				}
			 } 
		}	
	}
}
</script>
E a parte do php:
<?php
$destino = "raul.lima@cosmotec.com.br";
$empresa = $_POST['empresa'];
$responsavel = $_POST['responsavel'];
$endereco = $_POST['endereco'];
$cidade = $_POST['cidade'];
$telefone = $_POST['telefone'];
$mail = $_POST['mail'];
$conteudo = $_POST['mensagem'];
$headers.="From:".$mail."";

$mail = str_replace(' ','',$mail);
$mail = str_replace('/','',$mail);
$mail = str_replace('@.','@',$mail);
$mail = str_replace('.@','@',$mail);
$mail = str_replace(',','.',$mail);
$mail = str_replace(';','.',$mail);

if($responsavel=="") { 
	echo "Digite o nome do Responsável!"; 
} else
if($telefone=="" && $mail=="") {
	echo "Informe pelo menos uma forma de contato, e-mail ou telefone!";
} else
if($telefone!="") {
$mensagem = "Mensagem: $conteudo\n\n";
$mensagem .= "Responsável: $responsavel\n";
$mensagem .= "Empresa: $empresa\n\n";
$mensagem .= "E-mail: $mail\n";
$mensagem .= "Telefone: $telefone\n";
$mensagem .= "Endereço: $endereco\n";
$mensagem .= "Cidade: $cidade";
$enviado = 0;

mail("$destino","Mensagem Linha Animais","$mensagem","$headers");

$enviado = 1;
}
else
if(strlen($mail)<8 || substr_count($mail,"@")!=1 || substr_count($mail, ".")==0) { 
	echo "O e-mail digitado é inválido!";
} else {
$mensagem = "Mensagem: $conteudo\n\n";
$mensagem .= "Responsável: $responsavel\n";
$mensagem .= "Empresa: $empresa\n\n";
$mensagem .= "E-mail: $mail\n";
$mensagem .= "Telefone: $telefone\n";
$mensagem .= "Endereço: $endereco\n";
$mensagem .= "Cidade: $cidade";

mail("$destino","Mensagem Linha Animais","$mensagem","$headers");

$enviado = 1;
}
?>
A parte do form está assim:
<form id="formulario" method="post" onsubmit="mostrarResultado();">
Com uma div acima <div id='resultado'></div>

Eu creio estar fazendo muito errado, e gostaria que me dessem uma dica.

Vlw!!!

Ninguém???

Preloader Em Ajax

24/08/2007, 11:57

Pessoal sou novo no fórum e em questão de ajax.
Comecei a estudar essa semana. Minha dúvida é a seguinte:
Tenho um div na página que quero que carregue uma página quando clico no link da mesma, antes de carregar a página deverá aparecer um preloader.
Tentei fzr aqui mas está dando erro, podem me ajudar?

<!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" />
<title>Untitled Document</title>
<script type="text/javascript" language="javascript">
	function Ajax() {
		var ajax = false;
		if(window.XMLHttpRequest) {
			ajax = new XMLHttpRequest();
		}
		else if (window.ActiveXObject) {
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		}
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
	function getPages() {
		var campo_resultado = document.getElementById("box");
		var ajax = new Ajax();
		ajax.open("GET","pagina2.html",true);
		campo_resultado.innerHTML=carregando();
		ajax.onreadystatechange = function () {
			if (ajax.readystate == 4) {
				if (ajax.status == 200) {
					var no = ajax.responseText;
					campo_resultado.innerHTML = no;
				}
			}
		}
		ajax.send(null);
	}
	function carregando() {
	 	var msg = "<img src='ajax_preloader.gif'>Carregando....";
		return msg;
	}
</script>
</head>
<body>
<a href="#" onclick="getPages();">Link</a>
<div id="box"></div>
</body>
</html>

Fiz uma modificações e na div ele retorna undefined <_<
<!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" />
<title>Untitled Document</title>
<script type="text/javascript" language="javascript">
		var Ajax=false;
	function AjaxRequest() {
		Ajax = false;
		if (window.XMLHttpRequest) {
			Ajax = new XMLHttpRequest;	
		}
		else if (window.ActiveXObject) {
			try {
				Ajax = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					Ajax = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
	}
	function carregando() {
		if (Ajax.readystate == 4) {
			if (Ajax.status == 200) {
				var no = ajax.responseText;
				campo_resultado.innerHTML = no;
				var msg = "<img src='ajax_preloader.gif'>Carregando....";
				return msg;
			}
		}
	}
	function getPages() {
		var campo_resultado = document.getElementById("box");
		ajax = new AjaxRequest();
		if (!Ajax) {
			alert('Não foi possível iniciar o AJAX');
			return;
		}
		ajax.onreadystatechange = carregando;		
		Ajax.open('GET','pagina2.html',true);
		campo_resultado.innerHTML=carregando();
		ajax.send(null);
	}
</script>
</head>
<body>
<a href="#" onclick="getPages();">Link</a>
<div id="box"></div>
</body>
</html>

Tem alguém ai????

Bom acho q consegui o que queria...
Só tenho mais uma dúvida, o loading... não dá pra perceber muito bem no IE e no FF passa rapidinho tbm, no Opera dá pra ver de boa, eu queria saber se isso ocorre pq a página a ser carregada na div não é grande, por tanto não demora o carregamento, ou é pq os dados ficam gravados no cache??? Se for pelo cache, como fzr pra que isso não aconteça?

O script:
<script type="text/javascript" language="javascript">
	function openAjax() {
	var endereco;
	var ajax;
	try{
	ajax = new XMLHttpRequest();
	}catch(ee){
	try{
	  ajax = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
	  try{
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	  }catch(E){
		ajax = false;
	  }
	}
	}
	return ajax;
	}

function ajaxGet(endereco,retorno) {
	if(document.getElementById) {
	  var exibeResultado = document.getElementById('produtos_des');
	  exibeResultado.style.display='';
		var ajax = openAjax();
		ajax.open("GET",endereco,true);
		ajax.onreadystatechange = function() {
			if(ajax.readyState == 2 || ajax.readyState == 3) {
				exibeResultado.innerHTML = "<div id='carregando'><img src='images/ajax_preloader.gif' alt='Carregando' />Loading....</div>";
		   } else {
			if(ajax.readyState == 4) {
				if(ajax.status == 200) {
					var resultado = ajax.responseText;
					resultado = resultado.replace(/\+/g," ");
					resultado = unescape(resultado);
					exibeResultado.innerHTML = resultado;
				} else {
					exibeResultado.innerHTML = "Ocorreu um erro. Tente novamente mais tarde. ";
				}
			 } 
			}
		}
		ajax.send(null);
	}
}
</script>

E o link <a style="cursor:pointer;" onclick="ajaxGet('condicionador.html','retorno')">

IPB Skin By Virteq