LaBoss 0 Denunciar post Postado Setembro 23, 2006 Alguem faz ideia como fazer isto: quando clicar em View Comments (2) aparecerem os comentarios 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
CelloZero 0 Denunciar post Postado Setembro 23, 2006 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
LaBoss 0 Denunciar post Postado Setembro 23, 2006 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
LaBoss 0 Denunciar post Postado Setembro 23, 2006 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
hinom 5 Denunciar post Postado Setembro 23, 2006 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
LaBoss 0 Denunciar post Postado Setembro 23, 2006 humm alguem tem codigo para isso? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 23, 2006 humm alguem tem codigo para isso?está no post do "CelloZero" Compartilhar este post Link para o post Compartilhar em outros sites
LaBoss 0 Denunciar post Postado Setembro 23, 2006 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
LaBoss 0 Denunciar post Postado Setembro 23, 2006 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
hinom 5 Denunciar post Postado Setembro 24, 2006 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
LaBoss 0 Denunciar post Postado Setembro 24, 2006 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
LaBoss 0 Denunciar post Postado Setembro 25, 2006 ninguem? :S Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 26, 2006 ninguem? :Solá '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
CelloZero 0 Denunciar post Postado Setembro 26, 2006 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