Ir para conteúdo

POWERED BY:

Arquivado

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

LaBoss

PHP E Javascript

Recommended Posts

Alguem faz ideia como fazer isto:

 

Imagem Postada

 

quando clicar em View Comments (2)

 

aparecerem os comentarios

 

Imagem Postada

 

 

ja tenho o sitema das noticias criado mas queria imbotir isto....

 

 

alguem sabe como é possivel tenhem exemplos de codigo? isso era excelente

 

 

comps Daniel

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade nem precisa de ajax.... claro, com ajax ia ficar mais leve, pois você carrega conforme a necessidade... mas o que ele podia fazer é jogar já os resultados de comments numa tabela, ou div com uma id (tipo "comentarios") com o atributo display:none (css), tanto faz, e no view so chamadoonclick="document.comentarios.style.display='block'" e pra "fechar" onclick="document.comentarios.style.display='none'"abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois com essa das divs ja tentei mas sem resultado ele ao dar os comentarios da-me mal... alguem me poderia dar um ex em ajax?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ppl estive a ler aki e noutro forum:

 

e fiz o seguinte so k nao funca ca fica o cod:

 

ajax.js

// Variaveis globaisvar obj;var id;var funcao;var dados;fila  = [];ifila = 0;<!--------------------------------------------------------------------------------------->// Funcoes do xmlhttprequest<!--------------------------------------------------------------------------------------->function CreateObjXMLHttpRequest() { // Cria o objeto	obj = null;	// Procura por um objeto nativo W3C (Mozilla/Safari/Konqueror/Opera)	if (window.XMLHttpRequest){		obj = new XMLHttpRequest(); // Cria o objeto nativo		obj_type = "XMLHttpRequest";	} else if (window.ActiveXObject) { // Senao procura por uma versao ActiveX (IE)		// Array com tipos de objeto ActiveX		var msxmls = new Array('Msxml2.XMLHTTP.5.0',							   'Msxml2.XMLHTTP.4.0',							   'Msxml2.XMLHTTP.3.0',							   'Msxml2.XMLHTTP',							   'Microsoft.XMLHTTP');		// Percorre array com versoes do ActiveX e tenta criar o objeto		for (var i = 0; i < msxmls.length; i++) {			try {				obj = new ActiveXObject(msxmls[i]); // Tenta criar o objeto nativo				obj_type = msxmls[i];				break;			} catch(e) {				obj = false;			}		}	} else { // Nenhum objeto suportado pelo browser		obj = false;	}	return obj;}function GetContent(){	if(obj) // Verifica se objeto ainda existe	{		if(obj.readyState == 4) // Se requisicao terminada (readyState = 4)		{			if(obj.status == 200) // Se status retornado "ok" (status = 200)			{				eval(funcao+'();'); // Chama funcao respectiva			}			else  // Se status diferente de "ok"			{				alert('Erro! "'+ obj.statusText +'" (erro '+ obj.status +')'); //Exibe mensagem com o erro			}			// Proxima requisicao da fila			ifila++;			if (ifila < fila.length) {				setTimeout("SendRequest()",20);			}		}	}	else	{		return false;	}}function Requisition(var_id,arquivo,var_funcao,dados){	obj = CreateObjXMLHttpRequest(); // Cria uma instancia do objeto	id = var_id;	funcao = var_funcao;	// Encadeia variaveis enviadas pela requisicao	if (dados) {		var mensagem = '';		for (var i = 0; i < dados.length; i++) {			if(i > 0) {				mensagem += '&';			}			mensagem += 'dado'+i+'='+url_encode(dados[i]);		}	} else {		mensagem = null;	}	// Adiciona a fila	fila[fila.length] = [id, arquivo, funcao, mensagem];	// Se fila sem conexoes pendentes, executa	if ((ifila + 1) == fila.length) {		SendRequest();	}}function SendRequest(){	id	   = fila[ifila][0];	arquivo  = fila[ifila][1];	funcao   = fila[ifila][2];	mensagem = fila[ifila][3];	obj = CreateObjXMLHttpRequest(); // Cria uma instancia do objeto	obj.onreadystatechange = GetContent; // Define a funcao chamada na mudanca de status do objeto	obj.open('POST',arquivo, true) // Metodo prepara objeto pra requisicao	obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");	obj.send(mensagem); // Envia requisicao}// url_encode version 1.0function url_encode(str) {	var hex_chars = "0123456789ABCDEF";	var noEncode = /^([a-zA-Z0-9\_\-\.])$/;	var n, strCode, hex1, hex2, strEncode = "";	for(n = 0; n < str.length; n++) {		if (noEncode.test(str.charAt(n))) {			strEncode += str.charAt(n);		} else {			strCode = str.charCodeAt(n);			hex1 = hex_chars.charAt(Math.floor(strCode / 16));			hex2 = hex_chars.charAt(strCode % 16);			strEncode += "%" + (hex1 + hex2);		}	}	return strEncode;}// url_decode version 1.0function url_decode(str) {	var n, strCode, strDecode = "";	for (n = 0; n < str.length; n++) {		if (str.charAt(n) == "%") {			strCode = str.charAt(n + 1) + str.charAt(n + 2);			strDecode += String.fromCharCode(parseInt(strCode, 16));			n += 2;		} else {			strDecode += str.charAt(n);		}	}	return strDecode;}<!--------------------------------------------------------------------------------------->// Funcoes do sistema<!--------------------------------------------------------------------------------------->function InserirPagina_envia(){	document.getElementById(id).innerHTML = obj.responseText;}function InserirPagina_recebe(){	document.getElementById(id).innerHTML = url_decode(obj.responseText);}<!--------------------------------------------------------------------------------------->// Chamadas as funcoes<!--------------------------------------------------------------------------------------->function InserirComentario(nome,email,url,comentario,pg){	// Monta array dos dados enviados pela requisicao	var dados = new Array(nome,						  email,						  url,						  comentario,						  pg);	// Chama requisicao	Requisition(id='comunicacao',url='inserir_comentario.php',funcao='InserirPagina_envia',dados);	// Limpa formulario	document.getElementById("form_comentario").reset();	// Atualiza comentarios	ListarComentario(pg,'adicionado');}function ListarComentario(pg,acao){	// Monta array dos dados enviados pela requisicao	var dados = new Array(pg,						  acao);	// Chama requisicao	Requisition(id='comentarios',url='listar_comentario.php',funcao='InserirPagina_recebe',dados);}

index.php

 

<?php	// Limpa cache para Ajax funcionar no IE	header("Cache-Control: no-store, no-cache, must-revalidate");	header("Cache-Control: post-check=0, pre-check=0", false);	header("Pragma: no-cache");?><html><head>	<script type="text/javascript" src="ajax.js"></script></head><body>	<?php include "comentario.php"; ?>	<div id=comunicacao></div></body></html>

comentario.php

<div class=aviso><p><b>COMENTÁRIOS</b></p></div><div id=comentarios><?phprawurldecode(include("listar_comentario.php"));?></div><hr><form id="form_comentario" onsubmit="java script:InserirComentario(nome.value,email.value,url.value,comentario.value,pg.value);">	<h3><b>Insira seu comentário:</b></h3>	<center>	<table class=formulario>		<tr>			<td valign=top align=right>Nome: </td>			<td><input type=text name=nome maxlength=60 size=30 /></td>		</tr>		<tr>		   <td valign=top align=right>E-mail: </td>		   <td><input type=text name=email maxlength=120 size=30 /></td>		</tr>		<tr>		   <td valign=top align=right>URL: </td>		   <td><input type=text name=url maxlength=120 size=30 value='http://' /></td>		</tr>		<tr>			<td valign=top align=right>Comentário: </td>			<td><textarea name=comentario maxlength=1000 cols=40 rows=10></textarea></td>		</tr>		<tr>			<td colspan=2 align=center><input type=hidden name=pg value=<?=$_SERVER['PHP_SELF'];?> /><input type=button value="Enviar" onclick="java script:InserirComentario(nome.value,email.value,url.value,comentario.value,pg.value);" /></td>		</tr>	</table>	</center></form>

inserir_comentario.php

 

<?php	require "conecta.php";	// Recupera valores	$nome = addslashes(htmlentities($_GET['dado0']));	$email = addslashes(htmlentities($_GET['dado1']));	$url = addslashes(htmlentities($_GET['dado2']));	$comentario = addslashes(nl2br(htmlentities($_GET['dado3'])));	$pg = htmlentities($_GET['dado4']);	$sql = "INSERT INTO comentarios			(pg,nome,email,url,comentario,timestamp)			VALUES ('".$pg."','".$nome."','".$email."','".$url."','".$comentario."','".time()."')";	$resultado = mysql_query($sql);?>

 

conecta.php

 

<?$localhost = "localhost";$usuario = "root";$senha = "root";$banco = "teste";$link = mysql_connect($localhost, $usuario, $senha);	mysql_select_db($banco);?>

listar_comentario.php

 

<?phpfunction callback_listar_comentario($buffer) {	if($_GET['dado0']){ // Enviado pelo Ajax		return rawurlencode($buffer);	} else {		return $buffer;	}}ob_start("callback_listar_comentario");	require "conecta.php";	$buffer = '';	if($_GET['dado0']){		$pg = rawurldecode($_GET['dado0']);	} else {		$pg = $_SERVER['PHP_SELF'];	}	$acao = rawurldecode($_GET['dado1']);	if($acao == 'adicionado'){		$color=1;	}	// Busca comentarios	$sql = "SELECT nome,email,url,comentario,timestamp		   FROM comentarios		   WHERE pg='".$pg."'		   ORDER BY timestamp desc";	$resultado = mysql_query($sql);	$n_comentarios = mysql_num_rows($resultado);?><h2><?php echo $n_comentarios.' comentário(s)';?></h2><?php		// Lista comentarios		if($n_comentarios>0){			$cont = 1;			$cor1 = '#FFF9EF';			$cor2 = '#C5CFDB';			$faixa = $cor1;			while($linha = mysql_fetch_array($resultado)){				// Recebe valores				if(get_magic_quotes_gpc() == 1){					$nome = stripslashes($linha['nome']);					$email = stripslashes($linha['email']);					$url = stripslashes($linha['url']);					$comentario = stripslashes($linha['comentario']);				} else {					$nome = $linha['nome'];					$email = $linha['email'];					$url = $linha['url'];					$comentario = $linha['comentario'];				}				$timestamp = $linha['timestamp'];				// Alterna cor dos comentarios				if($faixa == $cor1){					$faixa = $cor2;				} elseif($faixa == $cor2) {					$faixa = $cor1;				}				echo "<h4 style='background-color:".$faixa.";'><font color=#00264D><b>".$cont." </b></font>";				echo $nome." - ";				echo "<font size=1>".date("d-m-Y H:i:s",$timestamp)."</font> | ";				if($email)					echo "<a href=mailto:".$email." class=estilo1>E-mail</a>";				if($email and $url)					echo " | ";				if($url != "" and $url != "http://")					echo "<a href=".$url." target=_blank class=estilo1>Site</a>";				echo "</h4>";				// Sinaliza comentario adicionado				if($cont == $n_comentarios and $color){					echo "<font color=red size=1>".'ADICIONADO COMENTÁRIO'."</font>";				}				echo "<blockquote><h4>".$comentario."</blockquote></h4>";				$cont++;			}		}ob_end_flush();?>

Banco de Dados

 

CREATE TABLE `comentarios` (  `pg` varchar(120) default NULL,  `nome` varchar(120) default NULL,  `email` varchar(120) default NULL,  `url` varchar(120) default NULL,  `comentario` text,  `timestamp` int(11) default NULL)

 

alguem sabe o k se passa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm.. se for algo pequeno e simples não precisa usar ajax pois vai acabar ficando mais pesadovocê poderia usar simplesmente DHTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

lermais</a><br /><br /><a href="onclick=document.comentarios.style.display='block'">asda</a><div id="comentarios" style="display: none;"><br/><b>terasd</b> -dasdasda<br />asdasda<br /><br /><br /><b>asda</b> - dasd 2006<br />é bem,asda</div>

 

dont work ;(

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim... eu pus isso... mas nao funciona na mesma :S nao abre a div

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse caso não recomendo usar javascript in-linefaça uma chamada para uma função porque é necessário verificar qual o browser do usuárioo parâmetro "display" do atributo "style" funciona com valores diferentes em browsers diferentes.consulte a documentação w3c.org e os sites de referência do javascript( desculpe não lembro de agora quais os valores corretos )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas ppl

 

consegui resolver metade do meu problema LOL

 

fiz o seguinte para ele nao abrir nem fechar as divs ao mesmo tempo

 

<td id='opacity' colspan='2' bgcolor=\"#292929\"><a href=java script:void($id) onclick=\"ToggleCommentDiv(this, 'info$r[id]','Ver Informações', 'Esconder Informações');\">Ver Informações<div id=info$r[id] style=display: none;><br/>

io meu fuile java.js

 

function ToggleCommentDiv(elm, hiddenDivName, ShowText, HideText){  var hiddenDiv = document.getElementById(hiddenDivName);  if(hiddenDiv.style.display == 'none')  {	elm.innerHTML = HideText;	hiddenDiv.style.display = 'block';  }  else  {	elm.innerHTML = ShowText;	hiddenDiv.style.display = 'none';  }}

 

meu file ieupdate.js

 

objects = document.getElementsByTagName("object");for (var i = 0; i < objects.length; i++){	objects[i].outerHTML = objects[i].outerHTML;}

Ok no ff funciona... nas ele ja vem aberto e eu keria fechado, depois no IE ele vem aberto e se fechar nao volta a abrir

 

podem ver o resultado:

 

http://www.njm-clan.com/site/?p=roster&dt=dt

Compartilhar este post


Link para o post
Compartilhar em outros sites

ninguem? :S

olá 'LaBoss' ,o problema principal do tópico está resolvido.o problema que ocorre agora é lógica de programação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

com dhtml e css você pode fazer assim

 

function abrediv(iddiv) { 	var dsp = document.getElementById(iddiv).style.display; 	//window.alert(dsp); 	if(dsp == 'none') { 	document.getElementById(iddiv).style.display='block'; 	} 	else { 	document.getElementById(iddiv).style.display='none';	 	} 	 }

e seta os comentarios com atributo "display: none;" no css...

 

e no link "Comentarios" coloca

 

<a href="#" onclick="abrediv('IdDaDivaqui')">Comentarios</a>

 

prontinho =D

 

acabei de fazer algo assim aqui prum relatorio na empresae funfou beleza... no firefox e ie

 

abraço!

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.