Jan-11 03

Mostrar ocultar conteudos com jquery toogle

Enviado por: Thales RB. .     3 comentários.     Categorias: Javascript, Jquery

O jquery entre as suas inúmeras facilidades tem a possibilidade de mostrar ou ocultar um conteúdo de uma div por exemplo. Essa funcionalidade é muito útil para páginas com conteúdo muito grande e que podem ser oculto.

Para fazer um dos métodos é usar a função toogle.

Aqui um exemplo de como irá ficar:

[inline]

[script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"][/script]

[script type="text/javascript"]
//só irá executar o script quando o DOM estiver pronto(quando toda a página estiver carregada)
$(document).ready(function() {

// texto que irá aparecer no link
var showText=’Mostrar’;
var hideText=’Ocultar’;

var visivel = false;

// adiciona esse link ao conteudo
$(‘.toggle’).prev().append(‘ (‘+showText+’)’);

// oculta o conteudo
$(‘.toggle’).hide();

//quando o link for clicado irá executar essa função
$(‘a.toggleLink’).click(function() {
// troca a visibilidade
visivel = !visivel;

// troca o texto do link
$(this).html( (!visivel) ? showText : hideText);

// exibe/oculta o conteúdo
$(this).parent().next(‘.toggle’).toggle(‘slow’);
// troca a linha acima pela de baixo para mudar o efeito
// $(this).parent().next(‘.toggle’).slideToggle(‘fast’);

return false;

});
});
[/script]
[/inline]

Conteudo 1

Conteúdo 2

Aqui segue todo o código para fazer ele funcionar.

[code language="php"]<script type="text/javascript">
//só irá executar o script quando o DOM estiver pronto(quando toda a página estiver carregada)
$(document).ready(function() {

// texto que irá aparecer no link
var showText='Mostrar';
var hideText='Ocultar';

var visivel = false;

// adiciona esse link ao conteudo
$('.toggle').prev().append(' (<a href="#" class="toggleLink">'+showText+'</a>)');

// oculta o conteudo
$('.toggle').hide();

//quando o link for clicado irá executar essa função
$('a.toggleLink').click(function() {
// troca a visibilidade
visivel = !visivel;

// troca o texto do link
$(this).html( (!visivel) ? showText : hideText);

// exibe/oculta o conteúdo
$(this).parent().next('.toggle').toggle('slow');
// troca a linha acima pela de baixo para mudar o efeito
// $(this).parent().next('.toggle').slideToggle('fast');

return false;

});
});
</script>
<p>Conteudo 1</p>
<div class="toggle" style="display: none;">

<p>Aqui pode ter qualquer conteúdo</p>

<p>Incluindo listas usando &lt;ul&gt; &lt;li&gt;</p>

</div>

<p>Conteúdo 2</p>
<div id="2009" class="toggle" style="display: none;">

<p>Aqui pode ter outro conteúdo</p>

<p>Linha 2</p>

<p>Linha 3</p>

</div>
[/code]

Como pode ser visto só é preciso adicionar a class=”toogle” a uma div que ele irá adicionar a funcionalidade.

Obs: caso queira fazer um efeito onde somente um dos itens seja visível de cada vez use a função Accordion do jquery

Aug-10 30

Adicionar dias a uma data em Mysql ou PHP

Enviado por: Thales RB. .     1 comentário.     Categorias: MySQL, PHP

Esses dias eu precisei adicionar 1 mês em uma data, e descobrir duas formas de fazer isso.

Caso queira usar isso com o PHP poder ser usado a função explode:

[code="php"]
$dt_ini='30/08/2009';
$total_dias='30';
$data=explode('/', $dt_ini);  //irá jogar em um array os valores para cada barra "/" que encontrar
$ano=$data[2];
$mes=$data[1];
$dia=$data[0];
$proxima_data=mktime(0,0,0, $mes,$dia+$total_dias,$ano);
$dt_final=strftime("%d/%m/%Y", $proxima_data);
echo $dt_final;
?>
[/code]

A vantagem desse método é que pode ser qualquer formato de data(exemplo 2010-08-30 )

MYSQL

Agora para fazer isso no Mysql, ou seja pegar os registros de uma data no futuro, pode ser usado o comando DATE_ADD

[code="php"]

SELECT DATE_ADD(CURDATE(), INTERVAL 1 MONTH)  -- data atual + 1 mês

SELECT DATE_ADD(CURDATE(), INTERVAL -1 MONTH) -- data atual - 1 mês

-- CURDATE() retorna somente a data

-- NOW() retorna data e hora

[/code]

O INTERVAL pode ser qualquer forma de tempo desde microsegundos até anos. E pode ser usado um valor positivo(data no fututo) ou negativo(datas passadas). Veja aqui as opções.

E logicamente no lugar do CURDATE() pode ser um campo/variavel que contenha data (ele precisa estar salvo no formato DATE ou DATETIME).

Obs:  caso queria colocar uma data fixa ela precisa estar entre aspas ’2010-08-30′ para funcionar.

[/code]
Jun-10 22

Textos/Numeros aleatórios em PHP/Mysql

Enviado por: Thales RB. .     5 comentários.     Categorias: MySQL, PHP

Como eu estou trabalhando com PHP, irei começar a colocar aqui algumas funções interessantes, uteis(pelo menos pra mim =D)

Aqui a função em PHP de como gerar dados aleatórios(randomicos), isso pode ser bem util para fazer uma lista de comentários/posts, ou imagens aleatórios.

A função que faz isso no PHP:

rand ($min , $max)

Ex:

$random_text = array("Texto 1",
                    "Texto 2",
                    "Texto 3",
                    "Texto 4",
                    "Texto 5");

$max = count($random_text);
echo $random_text[rand(0,$max-1)];

Essa função é util para gerar numeros aleatórios para um id ou algo assim.

Agora se vc quiser fazer isso numa busca SQL, é mais fácil ainda:

$sql = "SELECT * FROM tabela ORDER BY RAND()";
Dec-07 28

Ler quebra de linha do dados do banco de dados com PHP

Enviado por: Thales RB. .     2 comentários.     Categorias: Aprendendo PHP, PHP

Eu estava aqui convertendo a base de dados do wordpress para o meu sistema e vi que, no wordpress ao salvar no banco de dados ele usa quebra de linha(o enter mesmo), o editor que eu estou usando, para quebrar a linha adiciona <p>; nbsp </p>. Mas ao listar o conteudo o HTML não reconhece essas quebra de linhas.

Para converter essas quebras de linhas para o codigo HTML <p>; nbsp </p>, que irá realmente quebrar a linha existe a função nl2br com isso todas as quebras de linhas que houver no BD serão convertidas para <p>; nbsp </p> tornando assim a quebra visivel pelo HTML.

O seu uso é bem simples:

[code="php"]

nl2br($conteudo);

?>[/code]

simples não?

Dec-07 21

Gravar ou exibir datas em português com o PHP

Enviado por: Thales RB. .     2 comentários.     Categorias: Aprendendo PHP, Diversos, PHP

No post anterior sobre data eu mostrei como salvar uma data, mas daquela maneira ela fica em ingles, isso fica visivel se usar o F ou o D que exibem o nome do mês.

Mas existe uma maneira de gravar as datas em pt-br para isso se usa o comando strftime ele permite formatar a data de acordo com as configurações locais.

Para definir o local do onde você está se usa o setlocale

[cod=''php"]setlocale(LC_ALL, “pt_BR”, “ptb”); //selecionar o local parapt-br[/code]

após ter definido o local que estamos, podemos usar o strftime, o seu uso é simples:

[cod=''php"] $formato = '%d-%B-%Y %H:%M:%S';
$horario = strftime($formato);

echo $horario; [/code] ]

as formatações aceitas são:

  • %a - dia da semana abreviado de acordo com a localidade
  • %A - nome da semana completo de acordo com a localidade
  • %b - nome do mês abreviado de acordo com a localidade
  • %B - nome do mês completo de acordo com a localidade
  • %c - representação da data e hora preferida pela a localidade
  • %C - número do século (o ano dividido por 100 e truncado para um inteiro, de 00 até 99)
  • %d - dia do mês como um número decimal (de 01 até 31)
  • %D - mesmo que %m/%d/%y
  • %e - dia do mês como um número decimal, um simples dígito é precedido por espaço (de ' 1' até '31')
  • %g - como %G, mas sem o século.
  • %G - o 4-dígito do ano correspodendo as ISO week number (see %V). Este tem o mesmo formato e valor que %Y, exceto que se o ISO week number pertence ao prévio ou próximo ano, aquele ano é usado ao invés deste.
  • %h - mesmo que %b
  • %H - hora como um número decimal usando um relógio de 24-horas (de 00 até 23)
  • %I - hora como um número decimal usando um relógio de 12-hoas (de 01 até 12)
  • %j - dia do ano como número decimal (de 001 até 366)
  • %m - mês como número decimal (de 01 até 12)
  • %M - minuto como número decimal
  • %n - caracter novalinha
  • %p - um dos dois `am' ou `pm' de acordo com o valor da hora dada, ou as strings correspondentes para a localidade
  • %r - hora em a.m. e p.m. notação
  • %R - hora em notação de 24 horas
  • %S - segundo como um número decimal
  • %t - caracter tab
  • %T - hora corrente, igual a %H:%M:%S
  • %u - dia da semana como número decimal [1,7], com 1 representando Segunda-feira

Uma outra maneira de formatar a exibição da data é usando o substr, e também pode ser util para para ler a data salva e exibi-la em partes, isso pode ser usado para exibir ela em uma imagem(em um calendario como é aqui no site). Ex:

[cod=''php"]$data = '2010-08-28';
$dia = substr($data, 8, 2);// 8 é o numero do primeiro caracter e ser lido e 2 é o numero de caracteres a ser mostrado

$mes = substr($data, 5, 2);
$ano = substr($data, 0, 4);
echo “$dia/$mes/$anoâ€;[/code]

com essa função, pode se montar um switch para exibir o mês com nome por extenso ex:

[code="php"]switch (substr($data, 5,2)) {
case '01':
echo 'Jan';
break;
case '02':
echo 'Fev';
break;
case '03':
echo 'Mar';
break;
case '04':
echo 'Abr';
break;
case '05':
echo 'Mai';
break;
case '06':
echo 'Jun';
break;
case '07':
echo 'Jul';
break;
case '08':
echo 'Ago';
break;
case '09':
echo 'Set';
break;
case '10':
echo 'Out';
break;
case '11':
echo 'Nov';
break;
case '12':
echo 'Dez';
break;
}[/code]

Acho que usar essa segunda maneira é melhor, principalmente se for preciso, fazer busca usando data, mas fica a criterio de cada um escolher a melhor opção =D