Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

183
Visualizações
Extracto de la base de datos Ajax: oculta la carga más cuando se cargan todos los elementos

Estoy recuperando datos de una base de datos mysql, 5 elementos cada vez.

 $query = $pdo->prepare("SELECT * FROM names WHERE id < ? ORDER BY id DESC LIMIT 5"); $query->execute([$_POST["id"]]); while($row = $query -> fetch()) { echo "<div id="$row["id"].">".$row["name"]."</div>"; });

El siguiente javascript está recuperando datos de/a través de la consulta mysql anterior. Estoy pasando por la última identificación de cada div y el sql solo está tomando las identificaciones más pequeñas/antiguas para agregarlas a continuación.

 function request(id) { var data1 = "id=" + id; $.ajax({ type: "POST", url: "https://example.com/api", data: data1, cache: false, success: function(html) { $(".div").append(html); }, error: function(XHR){ } }); }; request(); $(document).on("click",".more",function(){ var id = $(".div").children( ":last" ).attr("id"); request(id); });

¿Hay una forma limpia de marcar el último resultado dentro del bucle php para que pueda recogerlo con javascript/jquery y ocultar el botón de carga ".more"?

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede aplicar los siguientes pasos:

  • obtenga el recuento de filas en la tabla de names y guárdelo en hidden input
 $query = $pdo->prepare("SELECT COUNT(*) C FROM names"); ... <input type="hidden" value="<?= $row['C'] ?>" id="table_rows_count" />
  • crear una hidden input adicional para el valor del contador
 <input type="hidden" value="0" id="counter" />
  • crear un contenedor hidden div y almacenar nuevos elementos en él
 <div style="display:none;" id="hidden_div"></div>
  • obtener la length of children en el contenedor oculto
  • update counter
  • compare el recuento de filas y la longitud de los niños y, si son iguales, oculte el botón .more
  • claro contenedor div oculto
 ... success: function(html) { $(".div").append(html); $("#hidden_div").append(html); var len = $("#hidden_div")[0].children.length, coun = $('#counter').val(), new_counter = coun + len, table_rows = $('#table_rows_count').val(); $('#counter').val(new_counter); if (table_rows == new_counter) $('.more').css('display','none'); $("#hidden_div").html('') }, ...

Nota: la salida de su solicitud $.ajax() debe estar presente solo como una lista de etiquetas divs ( <div>...</div> ), nada más. Además, olvidó pasar un argumento a su función de primera llamada request() .

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda