Fala pessoal!
Mais um post bacana para os apaixonados por programação ou não… rs
Aprenda neste post, como manipular dados através de session, de forma dinâmica, contando com a ajudinha do JQuery.
“Você tem uma listagem e gostaria que quando alguém clicar o valor fique guardado, e que este valor salvo seja exibido em uma página de resultados.” é isso? então, você está no lugar certo. continue…
Veja como funcionará, clicando aqui.
Para melhor entendimento, crie um banco de dados de nome “session” e uma tabela para teste de nome “favoritos”.
CREATE DATABASE session; CREATE TABLE IF NOT EXISTS `favoritos` ( `id` int(3) NOT NULL AUTO_INCREMENT, `nome` varchar(150) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; INSERT INTO `favoritos` (`id`, `nome`) VALUES (1, 'teste1'), (2, 'teste2'), (3, 'teste3'); |
// arquivo que fará a conexão com o banco
conecta.php
<? $DBNAME = "session"; // banco de dados $USUARIO = "nome_usuario"; $PASSWORD = "senha_de_acesso"; $SERVIDOR = "nome_do_servidor"; $link = mysql_connect($SERVIDOR,$USUARIO,$PASSWORD); if (!$link) { die('Não foi possível conectar: ' . mysql_error()); } $con = mysql_select_db($DBNAME,$link); if (!$con){ die('Não foi possível conectar: ' . mysql_error()); } ?> |
// arquivo que conterá a listagem
favoritos.php
<? session_start(); require_once("conecta.php"); ?> <!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=utf-8" /> <title>PHP Session + JQuery</title> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $('.add').on('click',function(){ $(this).addClass('selecionado').text("Selecionado"); var $acao = "add"; var $id = $(this).attr('rel'); $.ajax({ type: "POST", url: "session.php", data: { 'acao':$acao,'id':$id } }); return false; }); }); </script> <style type="text/css"> .festa{ background-color:#FDFCCD; width:170px; height:80px; margin-bottom:2px; padding-left:50px; } a{ text-decoration:none; color:#000066 } a.selecionar{ background:url(images/selecionar.png) no-repeat center right; height:43px; float:left; padding:25px 50px 0 0; color:#999999; } a.selecionado{ background:url(images/selecionado.png) no-repeat center right; height:43px; float:left; padding:25px 50px 0 0; color:#000000; font-weight:bold; } </style> </head> <body> <p><a href="resultados.php">ver selecionados</a></p> <? $select = mysql_query("SELECT * FROM favoritos"); while ($row = mysql_fetch_array($select)){ $id = $row['id']; $nome = $row['nome']; if( isset( $_SESSION["favoritos"][$id]) == $id ){ echo ' <div class="festa"> id: '.$id.'<a href="#" class="add selecionado" rel="'.$id.'" nm="'.$nome.'">Selecionado</a> </div> '; }else{ echo ' <div class="festa"> id: '.$id.'<a href="#" class="add selecionar" rel="'.$id.'" nm="'.$nome.'">Selecionar</a> </div> '; } } ?> </body> </html> |
// arquivo responsável por guardar os dados na session
session.php
<?php session_start(); $id = $_POST['id']; if( isset( $_POST['acao'] ) && $_POST['acao'] == "add" ){ $_SESSION["favoritos"][$id] = $_POST['id']; }else if( isset( $_POST['acao'] ) && $_POST['acao'] == "del" ){ unset($_SESSION["favoritos"][$id]); } ?> |
// arquivo que conterá os itens selecionados
resultados.php
<? session_start(); require_once("conecta.php"); ?> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $('.del').on('click',function(){ var $acao = "del"; var $id = $(this).attr('rel'); $.ajax({ type: "POST", url: "session.php", data: { 'acao':$acao,'id':$id }, success: function(){ location.reload(); } }); return false; }); }); </script> <p><a href="favoritos.php">voltar</a></p> <?php if ($_SESSION && $_SESSION['favoritos'] != null){ foreach($_SESSION['favoritos'] as $key => $value) { $id = $_SESSION['favoritos'][$key]; $sel = mysql_query("SELECT * FROM favoritos WHERE id = '".$id."'"); while($row = mysql_fetch_array($sel)){ echo "id: ".$row['id']." | "."nome: ".$row['nome']." <a href='#' class='del' rel='".$id."'>DEL FAVORITOS</a><br /> "; } } }else{ echo "Nenhum dado salvo no momento."; } ?> |
Espero ajudar alguém com este post.
Abraços e até a próxima.
Olha ai mais uma dica fantástica.
Mais uma vez salvo pela dica do Tiago, muito boa e agora devidamente guardada.
Obrigado por compartilhar.
Muito bom o tutorial, mas como faço para quando adicionar aos favoritos ir mostrando a quantidade que já tem adicionado, alguem sabe?
Aê valeu pelo post, justamente o que eu precisava!
Parabêns!
Muito bom, mas e se precisar remover um item da sessão, como faço?
Olá Dani.
Neste link http://linhadecomando.com/session-jquery/favoritos.php tem um exemplo de funcionamento.
Após ter selecionado, você deve clicar em “VER SELECIONADOS”.
Na próxima página você tem a opção de excluir.
Muito bom , funcional , simples e bem explicativo , vlw !!
Olá,
Muito bom o seu código. Ótimo trabalho.
Só tenho uma duvidá. Tenho um problema parecido. Quero pegar os valores do input e adicionar nessa SESSION como eu faria. Desde já obrigado.
muito bom, muito obrigado.,