Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Como puedo mostrar titulo y mensaje en favorito

Hola que tal tengo un botón en un post para agregar a favoritos Mi pregunta es la siguiente
Como podría agregar un condicional que si ya lo e agregado, no me deje agregarlo nuevamente?
Y en el caso de mostrarlo en favoritos como podría mostrar el titulo del post que e agregado a mis favoritos.
Este es mi código
Mi botón favorito :
<li><a onclick="agregar_favoritos('<?php echo $datos_verpost['id']; ?>');" id="add-fav"><i class="material-icons right">
Asi muestro lo que tengo en favoritos mi select
$accion_post="SELECT * FROM tc_favoritos WHERE autor=$iduser ORDER BY id DESC";
$consulta_posts=mysqli_query($conexion,$accion_post);
$datos_posts=mysqli_fetch_assoc($consulta_posts);
$cantidad_posts=mysqli_num_rows($consulta_posts);
Esto seria para mostrarlo en una tabla el titulo y algo del mensaje:
<div class="col s12 12 l12">
			<ul class="collection z-depth-1">
				<li class="collection-item avatar">
					<img src="<?php echo $dato[0]; ?>user/avatar/<?php echo $datos_perfil['avatar']; ?>" alt="<?php echo $datos_perfil['user']; ?>" class="circle">
					<span class="title">Mis Favoritos</span>
					<p><?php echo $datos_perfil['user']; ?></p>
				</li>
				<?php if ($cantidad_posts!=0) { 
					do{
					?>
				<li class="collection-item avatar">
					<img src="<?php echo $dato[0]; ?>user/avatar/<?php echo $datos_perfil['avatar']; ?>" alt="<?php echo $datos_perfil['user']; ?>" class="circle">
						<span class="title"><a href="<?php echo $dato[0];  ?>post/<?php echo $datos_posts['idpost']; ?>"><?php echo $datos_posts['idpost']; ?></a></span>
						<p><?php echo substr(strip_tags($datos_posts['idpost']),0,220).'...'; ?></p>
					<a href="#!" class="secondary-content"><i class="material-icons">favorite_border</i></a>
				</li>
				<?php
			}while($datos_posts=mysqli_fetch_assoc($consulta_posts));
			 }else{?>
				<div class="card-panel red lighten-2"><p class="white-text center">⇑ Parece que no se encontraron favoritos, agregados que talsi agregas algunos? Saludos!!!
				</p></div>
			<?php } ?>
			</ul>
		</div>
Espero de sus comentarios gracias
0
Puntos
144
Visitas
8
Resp
Por eduaryein hace 3 meses
Principiante Sitio web
Respuesta #1
hola que tal, pasa el código que usas para agregar el favorito a la base de datos... lo tienes ubicado en el patch de la función agregar_favoritos(); que supongo tendrás en js/efectos.js o algo similar.

salu2
0
Puntos
Por alber hace 3 meses
Administrador
Respuesta #2
Hola mira así lo utilizo
Primero doy click
Quisiera saber como ocultarlo una ves que el usuario ya lo alla agregado a sus favoritos u no se muestre al usuario que ya lo tiene agregado
<li><a onclick="agregar_favoritos('<?php echo $datos_verpost['id']; ?>');" id="add-fav"><i class="material-icons right">favorite</i></a></li>
Luego lo envió por ajax
function agregar_favoritos(idpost) {

	$.ajax({
		type: 'POST',
		url: urlweb + 'inc/addfavoritos.php',
		data: 'idpost=' + idpost,
		success: function(htmlfav) {
			if (htmlfav == 'correcto') {
				$('#add-fav').fadeOut(800);
			}
		}
	});

}
Lo guardo en la db
<?php require_once('../conexion.php'); 


//Validar formulario
if(!isset($_POST['idpost']) || $_POST['idpost']=='') exit;

	$accion_adduser = sprintf("INSERT INTO tc_favoritos (autor, idpost, status) VALUES (%s, %s, %s)",
		formatearcadena($_SESSION['iduser'],'int'),
		formatearcadena($_POST['idpost'],'int'),
		formatearcadena(1,'int'));

	$consulta_adduser = mysqli_query($conexion,$accion_adduser) or die(mysqli_error());




?>
Luego lo muestro en favoritos en este caso quisiera que me muestre el titulo del post que agregue a favoritos pero me muestra solo el id dl post
//Seleccionar tabla z_posts
$accion_favorito="SELECT * FROM tc_favoritos WHERE autor=$iduser AND status <> 0 ORDER BY id DESC";
$consulta_favoritos=mysqli_query($conexion,$accion_favorito);
$datos_favoritos=mysqli_fetch_assoc($consulta_favoritos);
$cantidad_favoritos=mysqli_num_rows($consulta_favoritos);





<div class="col s12 12 l12">
			<ul class="collection z-depth-1">
				<li class="collection-item avatar">
					<img src="<?php echo $dato[0]; ?>user_targetcode/avatar/<?php echo $datos_perfil['avatar']; ?>" alt="<?php echo $datos_perfil['user']; ?>" class="circle">
					<span class="title">Mis Favoritos</span>
					<p><?php echo $datos_perfil['user']; ?></p>
				</li>
				<?php if ($cantidad_favoritos!=0) { 
					do{
					?>
				<li class="collection-item avatar">
					<img src="<?php echo $dato[0]; ?>user_targetcode/avatar/<?php echo $datos_perfil['avatar']; ?>" alt="<?php echo $datos_perfil['user']; ?>" class="circle">
						<span class="title"><a href="<?php echo $dato[0];  ?>post/<?php echo $datos_favoritos['idpost']; ?>"><?php echo $datos_favoritos['idpost']; ?></a></span>
						<p><?php echo substr(strip_tags($datos_favoritos['idpost']),0,220).'...'; ?></p>
				</li>
				<?php
			}while($datos_favoritos=mysqli_fetch_assoc($consulta_favoritos));
			 }else{?>
				<div class="card-panel red lighten-2"><p class="white-text center">⇑ Parece que no se encontraron favoritos, agregados que talsi agregas algunos? Saludos!!!
				</p></div>
			<?php } ?>
			</ul>
		</div>
0
Puntos
Por eduaryein hace 3 meses
Principiante Sitio web
Respuesta #3
alber dijo: hola que tal, pasa el código que usas para agregar el favorito a la base de datos... lo tienes ubicado en el patch de la función agregar_favoritos(); que supongo tendrás en js/efectos.js o algo similar.

salu2
Hola Gracias por responder este es mi código
0
Puntos
Por eduaryein hace 3 meses
Principiante Sitio web
Respuesta #4
por ejemplo en tu fichero inc/addfavoritos.php tendrías algo así comprobando que el post todavía no este en favoritos:
<?php require_once('../conexion.php'); 


//Validar formulario
if(!isset($_POST['idpost']) || $_POST['idpost']=='') exit;


//CONSULTA A LA BASE DE DATOS
$accion_nm=sprintf("SELECT id FROM tc_favoritos WHERE autor=%s AND idpost=%s AND status=%s",
		formatearcadena($_SESSION['iduser'],'int'),
		formatearcadena($_POST['idpost'],'int'),
		formatearcadena(1,'int'));

$consulta_nm=mysqli_query($conexion,$accion_nm);
$datos_nm=mysqli_fetch_assoc($consulta_nm);
$cantidad_nm=mysqli_num_rows($consulta_nm);


//Insertar a favoritos solo cuando No esta en favoritos
if($cantidad_nm==0){

		$accion_adduser = sprintf("INSERT INTO tc_favoritos (autor, idpost, status) VALUES (%s, %s, %s)",
		formatearcadena($_SESSION['iduser'],'int'),
		formatearcadena($_POST['idpost'],'int'),
		formatearcadena(1,'int'));

	$consulta_adduser = mysqli_query($conexion,$accion_adduser) or die(mysqli_error());
}


mysqli_free_result($consulta_nm);




?>
de esta manera solo lo agregarías 1 vez por usuario y en la 2 vez no pasaría la condicional..

salu2
1
Puntos
Por alber hace 3 meses
Administrador
Respuesta #5
para el tema de no mostrar el botón de agregar sería algo parecido aunque lo suyo es hacerlo con una función php para acortar el código..
0
Puntos
Por alber hace 3 meses
Administrador
Respuesta #6
alber dijo: para el tema de no mostrar el botón de agregar sería algo parecido aunque lo suyo es hacerlo con una función php para acortar el código..
Muchas gracias Alber lo probare
0
Puntos
Por eduaryein hace 3 meses
Principiante Sitio web
Respuesta #7
alber dijo: para el tema de no mostrar el botón de agregar sería algo parecido aunque lo suyo es hacerlo con una función php para acortar el código..
Excelente Alber funciona de maravilla
1
Puntos
Por eduaryein hace 3 meses
Principiante Sitio web
Respuesta #8
eduaryein dijo:
alber dijo: para el tema de no mostrar el botón de agregar sería algo parecido aunque lo suyo es hacerlo con una función php para acortar el código..
Excelente Alber funciona de maravilla
Genial!
0
Puntos
Por alber hace 3 meses
Administrador
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate