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 :
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 gracias0
Puntos
Puntos
1065
Visitas
Visitas
8
Resp
Resp
Por eduaryein hace 7 años
Novice
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
salu2
0
Puntos
Puntos
Por alber hace 7 años
Admin
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
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 ajaxfunction 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
Puntos
Por eduaryein hace 7 años
Novice
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.Hola Gracias por responder este es mi código
salu2
0
Puntos
Puntos
Por eduaryein hace 7 años
Novice
Respuesta #4
por ejemplo en tu fichero inc/addfavoritos.php tendrías algo así comprobando que el post todavía no este en favoritos:
salu2
<?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
Puntos
Por alber hace 7 años
Admin
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
Puntos
Por alber hace 7 años
Admin
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
Puntos
Por eduaryein hace 7 años
Novice
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
Puntos
Por eduaryein hace 7 años
Novice
Respuesta #8
eduaryein dijo:Genial!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
0
Puntos
Puntos
Por alber hace 7 años
Admin