Foros del Web » Programando para Internet » PHP »

boton ver mas hecho con AJAX funciona pero mal?

Estas en el tema de boton ver mas hecho con AJAX funciona pero mal? en el foro de PHP en Foros del Web. tengo un boton "ver mas" para cargar mas comentarios de los 5 que estan a primera vista por defecto... el boton funciona pero no como ...
  #1 (permalink)  
Antiguo 26/12/2015, 22:03
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 8 años, 11 meses
Puntos: 2
Sonrisa boton ver mas hecho con AJAX funciona pero mal?

tengo un boton "ver mas" para cargar mas comentarios de los 5 que estan a primera vista por defecto... el boton funciona pero no como yo esperaria... :C ya que a medida que presiono el boton me va cargando los comentarios pero de todos los posts... y yo lo que quiero es que me cargue los del post donde dicho boton este siendo presionado.

alguna idea? ... dejo mi codigo por si acaso...


comentarios.html

Código PHP:
<!-- COMENTARIOS -->
 <?php
            $sql 
mysql_query("SELECT * FROM comentarios WHERE post='$id' ORDER BY id DESC LIMIT 2");

            if (
mysql_num_rows($sql)==0) {
              
?>
              <section id="sincomentarios"> <span class=" icon-emo-surprised">  No hay comentarios hasta el momento... sé el primero<span class="icon-down-hand"></span> </span></section>

           <?php
            
}else{
              
?>
              <section id="todos_los_comentarios"> <span class="icon-chat">  Comentarios  </span></section>
<?php
            
while ($row=mysql_fetch_array($sql)) {
               
$msg_id=$row['id'];
            
$message=$row['comentario'];
            
?>
<br>
<section class="timeline" id="updates">
<div id="comentario">
<autor> <?php echo $row['nombre']." "$row['apellido']." dice:" ?></autor> <i><date><?php echo " el " .$row['fecha'?> </date> </i>
<hr>
<p>
<?php echo $row['comentario'?>
</p>
</div>
<?php
}
?>
</section>
<div id="more<?php echo $msg_id?>" class="morebox">
<a href="#" class="more" id="<?php echo $msg_id?>">Cargar más</a>
</div>
<?php
}
?>

cargarmas.php...


Código PHP:
 <?php
include("php/conexiondb.php");


if(isSet(
$_POST['lastmsg']))
{

$lastmsg=$_POST['lastmsg'];
$result=mysql_query("select * from comentarios where id<'$lastmsg' order by id desc limit 2");
$count=mysql_num_rows($result);
while(
$row=mysql_fetch_array($result))
{
$msg_id=$row['id'];
$message=$row['comentario'];
?>
 


<div id="comentario">
<autor> <?php echo $row['nombre']." "$row['apellido']." dice:" ?></autor> <i><date><?php echo " el " .$row['fecha'?> </date> </i>
<hr>
<p>
<?php echo $row['comentario'?>
</p>
</div>

<?php
}
?>

<div id="more<?php echo $msg_id?>" class="morebox">
<a href="#" id="<?php echo $msg_id?>" class="more">Cargar más</a>
</div>

<?php
}
?>

aca el script con el que gestiono la logica del boton mediante AJAX:

<script type="text/javascript">
$(function() {
//More Button
$('.more').live("click",function()
{
var ID = $(this).attr("id");
if(ID)
{
$("#more"+ID).html('<img src="moreajax.gif" />');

$.ajax({
type: "POST",
url: "cargarmas.php",
data: "lastmsg="+ ID,
cache: false,
success: function(html){
$("section#updates").append(html);
$("#more"+ID).remove();
}
});
}
else
{
$(".morebox").html('No hay mas comentarios');

}


return false;


});
});

</script>
  #2 (permalink)  
Antiguo 27/12/2015, 13:40
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 21 años, 5 meses
Puntos: 13
Respuesta: boton ver mas hecho con AJAX funciona pero mal?

Aquí está el problema. Los siguientes ids de comentarios pueden ser de cualquier post. Debes añadir también aquí el post id.
Código PHP:


$result
=mysql_query("select * from comentarios where id<'$lastmsg' AND post='$id' order by id desc limit 2"); 
$count=mysql_num_rows($result); 
  #3 (permalink)  
Antiguo 27/12/2015, 14:47
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 8 años, 11 meses
Puntos: 2
Sonrisa Respuesta: boton ver mas hecho con AJAX funciona pero mal?

Cita:
Iniciado por autonotel Ver Mensaje
Aquí está el problema. Los siguientes ids de comentarios pueden ser de cualquier post. Debes añadir también aquí el post id.
Código PHP:


$result
=mysql_query("select * from comentarios where id<'$lastmsg' AND post='$id' order by id desc limit 2"); 
$count=mysql_num_rows($result); 
joder tienes razon jaja! como lo deje pasar... el detalle ahora es que me dice que la variable "id" no esta definida... al parecer no me está leyendo el valor de la variable desde el archivo post.php... la defini en el ajax_more.php pero no me la trae... alguna idea? me lanza el mensaje de no se reconce el post

Código PHP:
 <?php
include("php/conexiondb.php");

if(isSet(
$_POST['lastmsg']))
{
if(empty(
$_GET['n'])) {
    echo 
"no se reconoce el post";
}else{

$id=$_GET['n'];
$lastmsg=$_POST['lastmsg'];
$result=mysql_query("select * from comentarios where id<'$lastmsg' and post='$id' order by id desc limit 2");
$count=mysql_num_rows($result);
while(
$row=mysql_fetch_array($result))
{
$msg_id=$row['id'];
?>
 


<div id="comentario">
<autor> <?php echo $row['nombre']." "$row['apellido']." dice:" ?></autor> <i><date><?php echo " el " .$row['fecha'?> </date> </i>
<hr>
<p>
<?php echo $row['comentario'?>
</p>
</div>



<?php
}

?>
  #4 (permalink)  
Antiguo 29/12/2015, 03:42
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 21 años, 5 meses
Puntos: 13
Respuesta: boton ver mas hecho con AJAX funciona pero mal?

También puedes limitar los resultados y comenzar por el siguietnte haciendo siempre la misma consulta pero jugando con los limit

Consulta primera. Dos registros empezando por el primero limit 2,0
Código PHP:
<?PHP  $sql mysql_query("SELECT * FROM comentarios WHERE post='$id' ORDER BY id DESC LIMIT 2,0");?>
Consulta siguinetes.
Dos registros empezando por el tercero limit 2,2
Código PHP:
<?PHP  $sql mysql_query("SELECT * FROM comentarios WHERE post='$id' ORDER BY id DESC LIMIT 2,2"); ?>
En cualquier caso tu ajax, para recibir por get de una forma sencilla puede ser:
Código PHP:
$.ajax({
type"POST",
url"cargarmas.php?n="+ID,
data"lastmsg="ID
cachefalse,
success: function(html){
$(
"section#updates").append(html);
$(
"#more"+ID).remove();
}
});

Ya que en el script la recoges como $_GET['n'];
Aunque el type sea post lo puedes enviar así.
No me parece la forma correcta de enviarlo por post en cualquier caso de todas formas puedes probar a poner en el php la recogida como $_POST['n'] en lugar de poner $_GET['n']; Si no, tal cual te lo pongo ahí debería de funcionar.

Última edición por autonotel; 29/12/2015 a las 03:54

Etiquetas: ajax-php, ajax-php-mysql, web+general
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:10.