Ir para conteúdo

Arquivado

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

MetalDragonX

Como usar o POSTBACK?

Recommended Posts

mas eu n sei programar em javascript ainda n.to tentando, mas n to conseguindo saber pra que seve cada.tirando que eu n tenho conhecimento de quase nd.como poderia colocar em seu codigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como iria usar aqui?

 

var padrao = /(<a href="(.*?)">(.*?)<\/a)/i;			var pagina = this.innerHTML.replace(padrao, "$3");			var url = 'receber.php?pagina=' + pagina;								mostrar_pagina(url, 'conteudo');								document.title = pagina;

 

 

não entendi o que quer dizer aqui.

 

var items = [], allItems = document.getElementsByTagName("li");	for (var i = 0; i < allItems.length; i++) {					allItems[i].onclick = function() {			for (var item = this.parentNode.firstChild; item; item = item.nextSibling) {					item.className = 'normal';					}		this.className = 'current';

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nessa parte que você nao entendeu é assim:

 

var items = [], allItems = document.getElementsByTagName("li");

pega todos os objetos com a tag li exemplo

[*]

 

for (var i = 0; i < allItems.length; i++) {

monta um loop para pegar os itens separados

 

allItems[i].onclick = function() {

aqui é que funciona a ação nao obstrusiva, em vez de colocar no codigo html onclick="", verificamos aqui se o usuario apertou o botao em cima da tag

[*]

 

for (var item = this.parentNode.firstChild; item; item = item.nextSibling) {		
		item.className = 'normal';			
	}
	this.className = 'current';

 

aqui é outro loop apenas para fazer o efeito das abas e ver qual foi selecionada e passar o efeito para ela tirando o das outras

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas a parte que eu disse de como iria usar.

var padrao = /(<a href="(.*?)">(.*?)<\/a)/i;	var pagina = this.innerHTML.replace(padrao, "$3");	var url = 'receber.php?pagina=' + pagina;						mostrar_pagina(url, 'conteudo');						document.title = pagina;

onde devo colocar o href?

qq devo fazer pra pegar a variavel P?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não estou entendendo muito bem o que você quer, mas vou tentar aqui:

 

Para pegar o href do link que foi clicado:

var link = this.childNodes[0].getAttribute("href");//pega o atributo href da primeira tag "filha", no seu caso, o <a></a>
Editado: Essa var link deve vir dentro da função onclick() do script do fabyo, se não, não vai funcionar (o this remete a ela, mas só dentro da function onclick() )

 

Para pegar a variável p:

var arguments = link.split("?")[1].split("&"); //pega todos os argumentos da urlvar p = null;for(var i = 0; i < arguments.length; i++){	arguments[i].match(/^(P|p)=.*/) ? p = arguments[i].split("=")[1] : "";	p != null ? break : "";}
Era isso mesmo??

 

qlqer coisa posta ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo.

 

agora foi que n entendi.

 

simplismente eu n quero pegar todos.

as paginas que quero pega... são de todos os links do site.

 

no caso. todo link vai ter uma pagina.

index.php?p=pagina_que_quero_mostrar

 

no caso eu iria pegar somente as que tivesem a viriavel "p"

 

 

 

deixei assim.

mas n sei se ta certo.

to conseguindo nem entender.

 

function iniciar() {	var link = this.childNodes[0].getAttribute("href");var arguments = link.split("?")[1].split("&");var p = null;for(var i = 0; i < arguments.length; i++){	arguments[i].match(/^(P|p)=.*/) ? p = arguments[i].split("=")[1] : "";	p != null ? break : "";}		this.className = 'current';						var padrao = /(<a href="(.*?)">(.*?)<\/a)/i;			var pagina = this.innerHTML.replace(padrao, "$3");			var url = 'receber.php?p=' + pagina;								mostrar_pagina(url, 'conteudo');								document.title = pagina;			}				}

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

to com um problema aqui no POSTBACK

 

desenvolvi um sistema de cinema.

mas n ta mostrando.

 

n ta funcionando que preste.

 

if (empty($_SESSION['cine1'])) {	echo "<span style='color:red;'>Estou conectando no banco de dados</span>";	$sql=mysql_query("SELECT id,foto,filme,h1,h2,h3,cine FROM cinema WHERE cine='cine1' ORDER BY id DESC LIMIT 0,1");	$cine1=mysql_fetch_array($sql);	$dados="<div class=\"foto\"><img src=\"cine/{$cine1['foto']}\"></div><div class=\"dados\"><b>{$cine1['filme']}</b><br><h2>( {$cine1['h1']} | {$cine1['h2']} | {$cine1['h3']} )</h2></div>";	$cinema=$dados;	$_SESSION['cine1']=$cinema;	echo $_SESSION['cine1'];} else {	echo 'não verificando o banco de dados';	echo $_SESSION['cine1'];}

alguem tem como me ajudar aqui?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua função iniciar ficaria +/- assim:

 

function iniciar() {		var items = [], allItems = document.getElementsByTagName("li");		for (var i = 0; i < allItems.length; i++) {						allItems[i].onclick = function() {				for (var item = this.parentNode.firstChild; item; item = item.nextSibling) {						 item.className = 'normal';			}			var link = this.childNodes[0].getAttribute("href");			var args = link.split("?")[1].split("&");			var p = null;			for(var i = 0; i < args.length; i++){				args[i].match(/^(P|p)=.*/) ? p = args[i].split("=")[1] : "";				p != null ? break : "";			}			this.className = 'current';			//note que não vamos mais precisar pegar o conteudo das tags, basta o href do link			var url = 'receber.php?pagina=' + p;			mostrar_pagina(url, 'conteudo');			document.title = pagina;	 		}	}	var aba = document.getElementsByTagName("span");	for (var j = 0; j < aba.length; j++) {				aba[j].onmouseover = function() {					if(this.className != 'link'){									this.className = 'link';			}	 		}				aba[j].onmouseout = function() {				if(this.className != 'normal'){						this.className = 'normal';			}	 		}	} }
Mas provavelmente você também não vai entender muito não (digo pq realmente é difícil pra nós, do php, entendermos o js de prima assim) então vai postando as dúvidas q tiver ai.....vou assinar o post e respondo qndo receber as msg do forum....

 

Depois eu dou uma olhada melhor nisso e vejo como pode ser feito, pq é melhor mesmo usar os links que os próprios li, pois você pode reutilizar o href dos links.....

 

Se tiver algo lhe mando....

 

Quanto ao POSTBACK, o que está acontecendo de errado??

Ao que vi, está ok.....num conheço mto não, mas parece estar ok.....

manda o erro ai...

 

flw

 

[editado]

Essa função tem uns erros, testei aki e concertei. E tem mais, você vai precisar cancelar o click do usuário, então agora está com a função cancelClick(), que faz isso.

 

Dê uma lida, e veja se tá tranqüilo de entender... Vou postar no tópico do fabyo tbm...

 

function iniciar() {		var items = [], allItems = document.getElementById("header").getElementsByTagName("li");		for (var i = 0; i < allItems.length; i++) {						allItems[i].getElementsByTagName("a")[0].onclick = function(clickEvent) {			cancelClick(clickEvent);//evitamos que vá para a página apontada no href						for (var e = 0; e < allItems.length; e++) {						allItems[e].className = 'normal';				}				var link = this.getAttribute("href");			var args = link.split("?")[1].split("&");//pega os parametros da url			var pagina = null;			for(var n = 0; n < args.length; n++){				args[n].match(/^(P|p)=.*/) ? pagina = args[n].split("=")[1] : "";				if(pagina != null)					break;			}						this.parentNode.className = 'current';			var url = 'receber.php?pagina=' + pagina;			mostrar_pagina(url, 'conteudo');				document.title = pagina;		}	}			var aba = document.getElementsByTagName("span");	for (var j = 0; j < aba.length; j++) {				aba[j].onmouseover = function() {					if(this.className != 'link'){									this.className = 'link';			}	 			}					aba[j].onmouseout = function() {				if(this.className != 'normal'){						this.className = 'normal';					}			}	}}function cancelClick(e){	if (window.event){		try{			window.event.cancelBubble = true;			window.event.returnValue = false;			return;		}catch(a){			return false;		}	}	if (e){		try{			e.stopPropagation();			e.preventDefault();		}catch(a){			return false;		}	}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei de tudo.

 

mas n ta dando certo.

 

vou postar aqui o codigo.

 

index.php

<?phpinclude("add/conn.php");?><html><head><title>Tbla bla bla</title><meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /><meta name="TITLE" CONTENT="tirai"><meta name="OWNER" CONTENT="metaldragonx@gmail.com"><meta name="AUTHOR" CONTENT="Victor Cesar"><meta http-equiv="CONTENT-LANGUAGE" CONTENT="Portuguese"><meta http-equiv="Content-Language" content="pt-br"><meta name="RATING" CONTENT="General"><meta name="description" content="bla bla bla"><link href="add/padrao.css" rel="stylesheet" type="text/css"><?phpif (isset($_SESSION['a_sexo'])) {echo '<link href="add/'.$_SESSION['a_sexo'].'.css" rel="stylesheet" type="text/css">';} else {echo '<link href="add/x.css" rel="stylesheet" type="text/css">';	}?><script src="add/ajax.js" type="text/javascript"></script><script src="add/tirai.js" type="text/javascript"></script><script src="add/user.js" type="text/javascript"></script></head><body onload="process()"><center><div id="geral"><div id="topo"><span id="banner"><?php//BANNER ROTATIVOconected();$banner=mysql_query("SELECT arquivo FROM banner");desconected();?></span></div><div id="menu"><div id="canais"><ul><li class="sum">Menu</li><br><br><li><a href="<?=$_SERVER['PHP_SELF']?>?p=principal" title="Página Principal">Home</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=contatos" title="Entre em contato com o Tirai">Contatos</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=sobre" title="Saiba mais sobre o Tirai">Sobre Nós</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=anuncie" title="Anuncie no Tirai e cresça">Anuncie!</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=equipe" title="Conheça nossa equipe">Equipe</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=tirai" title="Cobertura das festas">Tirai</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=tiraivip" title="Cobertura das festas VIP'S">TiraiVIP'S</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=agenda" title="Fique por dentro das festas com nossa agenda">Agenda</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=noticias" title="Veja a realidade">Noticias</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=bandas" title="Conheça as bandas">Bandas</a></li><li><a href="<?=$_SERVER['PHP_SELF']?>?p=mural" title="Deixe seu recado aqui">Mural de Recados</a></li></ul><?phpif (isset($_SESSION['tirai_id'])) {	conected();	include("menuuser.php");	desconected();}?></div></div><div id="barra"><?phpif (!isset($_SESSION['tirai_id'])) {	echo '<form action="login.php" method="POST">Usuario: <input name="login" type="text" maxleght="20" size="7"> Senha: <input name="senha" type="password" maxleght="12" size="7"> <input type="submit" value="Ok"> <a href="'.$_SERVER['PHP_SELF'].'?p=cadastrar" title="Cadastrar-se">Cadastrar-se</a> | <a href="'.$_SERVER['PHP_SELF'].'?p=lembrete" title="Esqueci a senha">Esqueci a senha</a></form>';} else {	echo "Seja Bem vindo(a) {$_SESSION['nome']}.";}?></div><div id="conteudo"><!-- Loading text div --><div id="loading" style="position: absolute; display:none"><br />	<div style="margin-left:30px;"><img src="images/load.gif">Atualizando informações...</div></div><!-- END - Loading text div --></div><div id="rodape"></div></div></center></body></html>

ajax.js

function XMLHTTPRequest(){   obj = null;   if (window.XMLHttpRequest)   {	  obj = new XMLHttpRequest();	  obj_type = "XMLHttpRequest";   }   else if (window.ActiveXObject)   {	  var msxmls = new Array('Msxml2.XMLHTTP.5.0',	  'Msxml2.XMLHTTP.4.0',	  'Msxml2.XMLHTTP.3.0',	  'Msxml2.XMLHTTP',	  'Microsoft.XMLHTTP');	  for (var i = 0; i < msxmls.length; i ++ )	  {		 try		 {			obj = new ActiveXObject(msxmls[i]);			obj_type = msxmls[i];			break;		 }		 catch(e)		 {			obj = false;		 }	  }   }   else   {	  obj = false;   }   return obj;}

funcoes.js

 

foi a que você postou ae acima com o codigo de cancelar o click

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas no seu código você não incluiu a funcoes.jsnão seria isso?e no caso, você deve usar o mesmo arquivo que está no script do fabyo, o funcoes.jsvocê só vai trocar a função iniciar() e adicionar no final a função cancelClick()e coloca a funcoes.js no código, pq no q você colocou, nao tem...e tira da tag body o atributo onload.isso você vai colocar no javascript. Aquele última linha do script do fabyo é que vai se encarregar pelo onload da página.t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu retirei o onload.

ate ae tudo bem

 

mas coloquei o codigo como você tinha colocado e n deu certo.

 

ta tudo direito aqui.

 

os scripts tb.

 

mas vou postar o codigo que tem que pegar a variavel "p" do href do links

<a href="index.php?p=pagina">pagina</a>

 

coloquei o codigo assim.

 

ajax.js

function XMLHTTPRequest() {	var http = 0;	if (window.XMLHttpRequest) {		http = new XMLHttpRequest();	} else {		try {			http = new ActiveXObject("Msxml2.XMLHTTP");		} catch(e) {			try {			http = new ActiveXObject("Microsoft.XMLHTTP");			} catch(e) {				http = false;			}		}	}	return http;}

tirai.js

function mostrar_pagina(url, div) {	var http = XMLHTTPRequest();	if (http) {		http.onreadystatechange = function() {			if (http.readyState == 4) {				if (http.status == 200) {					var retorno = unescape(http.responseText.replace(/\+/g," "));					document.getElementById(div).innerHTML = retorno				} else {					alert('There was a problem with the request.');				}			}				}		http.open('GET', url, true);		http.send(null);	}	else {		alert('Erro seu navegador nao suporta ajax');	}}	function iniciar() {		var items = [], allItems = document.getElementById("header").getElementsByTagName("li");		for (var i = 0; i < allItems.length; i++) {						allItems[i].getElementsByTagName("a")[0].onclick = function(clickEvent) {			cancelClick(clickEvent);//evitamos que vá para a página apontada no href						for (var e = 0; e < allItems.length; e++) {						allItems[e].className = 'normal';				}				var link = this.getAttribute("href");			var args = link.split("?")[1].split("&");//pega os parametros da url			var p = null;			for(var n = 0; n < args.length; n++){				args[n].match(/^(P|p)=.*/) ? p = args[n].split("=")[1] : "";				if(pagina != null)					break;			}						this.parentNode.className = 'current';			var url = 'receber.php?p=' + p;			mostrar_pagina(url, 'conteudo');				document.title = p;		}	}			var aba = document.getElementsByTagName("span");	for (var j = 0; j < aba.length; j++) {				aba[j].onmouseover = function() {					if(this.className != 'link'){									this.className = 'link';			}				}					aba[j].onmouseout = function() {				if(this.className != 'normal'){						this.className = 'normal';					}			}	}}function cancelClick(e){	if (window.event){		try{			window.event.cancelBubble = true;			window.event.returnValue = false;			return;		}catch(a){			return false;		}	}	if (e){		try{			e.stopPropagation();			e.preventDefault();		}catch(a){			return false;		}	}}
bom...

o que ta acontecendo.

 

na parte da index.

coloquei no conteudo.

 

<div id="conteudo"><?php$n=$_GET['p'];if (empty($n)) {	include("links/principal.php");}?><!-- Loading text div --><div id="loading" style="position: absolute; display:none"><br />	<div style="margin-left:30px;"><img src="images/load.gif">Atualizando informações...</div></div><!-- END - Loading text div --></div>
e na pagina receber.php

 

coloquei:

<?$n=$_GET['p'];if (!empty($n)) {	if (file_exists("links/$n.php")) {		include("links/$n.php");	} else {		echo '<meta http-equiv="refresh" content="5;url=erro.php">';	}}?>
so que ele carrega a pagina e n coloca no conteudo.

ai pra ver se tava dando refresh na pagina toda...

coloquei um arquivo em flash.

 

acho que ainda ta como servidor.

 

http://201.9.69.140/festa/

 

tenta entrar pra você ver.

qualquer coisa me add no msn.

 

metaldragonx@gmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

MetalDragonX, você tem que adaptar o script ao seu site. eu alterei apenas do jeito que estava no script do fabyo.

Veja que você não tem uma tag com o id="header" no seu html, e no script nós utilizamos

 

var items = [], allItems = document.getElementById("header").getElementsByTagName("li");

 

tente alterar isso no script, colocando o id do div onde está seu menu:

 

var items = [], allItems = document.getElementById("canais").getElementsByTagName("li");

 

 

Mas note que você tem uma tag li que não tem nada a ver com o menu, que é a que dá o título ao menu. você tem então que excluí-la.

 

teste novamente e veja se dá erro..... te add no msn, mas como não fico mto nele, te add no gtalk tbm. Se puder entrar no gmail, conversamos por lá.....

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajax ta funcionando aqui graças a ajuda do charlesschaefer.

 

vlw amigo.

 

mas agora volto pra o problema do tema do posback

desenvolvi um sistema de mostrar filmes.

assim n precisa ficar colocando direto o post.

 

tipo

if (empty($_SESSION['cine1'])) {	echo "<span style='color:red;'>Estou conectando no banco de dados</span>";	$sql=mysql_query("SELECT id,foto,filme,h1,h2,h3,cine FROM cinema WHERE cine='cine1' ORDER BY id DESC LIMIT 0,1");	$cine1=mysql_fetch_array($sql);	$dados="<div class=\"foto\"><img src=\"cine/{$cine1['foto']}\"></div><div class=\"dados\"><b>{$cine1['filme']}</b><br><h2>( {$cine1['h1']} | {$cine1['h2']} | {$cine1['h3']} )</h2></div>";	$cinema=$dados;	$_SESSION['cine1']=$cinema;	echo $_SESSION['cine1'];} else {	echo 'não verificando o banco de dados';	echo $_SESSION['cine1'];}

mas ele sempre volta dizendo que esta conectado.

 

qual o erro que tem ae?

Compartilhar este post


Link para o post
Compartilhar em outros sites

era so o session_star() msm que eu tinha esquecido de colocar.vlw.mals voltando ao assunto.como seria esse VIEWSTATE e AUTO POSTBACK que você disse fabyo?poderia mostrar uma logica?

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.