En mi proyecto, uso PHP para consultar la base de datos (en mi caso, SELECCIONAR) y uso while loop para buscar cada fila, y lo uso para volver a ajax.
Como en mi PHP:
$sql = "SELECT * FROM tasks A WHERE A.open = '1'"; $stmt = $pdo->prepare($sql); $stmt->execute(); while ($row = $stmt->fetch()){ echo $row["orderDetails"]; }En mi HTML:
<script> $(function(){ $.ajax({ method: "POST", url: "getDetails.php", success: function(backData){ $("#details").html(backData); } }); <script>Digamos que consulto la base de datos para las tareas abiertas en mi tabla de tareas donde task.open=1, luego dentro de cada tarea abierta, vuelvo a mi ajax sobre los detalles de estas tareas, y mi ajax cambiará el html del div sobre los detalles de la tarea.
Básicamente, el número de tareas abiertas, también conocido como el número de bucles while, es el número de ecos. ¿Cuál es la mejor manera de obtener este número para poder mostrar en el html cuántas tareas se enumeran aquí?
PD: traté de capturar este número agregando un contador de bucle while dentro del bucle while, y agregué este número a un atributo del div y regresé a ajax, sin embargo, no sé por qué este eco no tendrá lugar. en mi final
¡Gracias chicos!
Lo resolví agregando un div con un atributo de clase al eco para contener los detalles de este pedido y luego, de regreso a mi html, usé jQuery para contar el div con esa clase específica y obtener el número. Recibo la pista de aquí: cuente los elementos div con la misma identificación JQUERY Pero puede publicar una mejor solución para esto: D
Lo que desea hacer es enviar una respuesta JSON adecuada, luego puede usar la propiedad de length para verificar cuántos elementos hay. No necesita un bucle para hacer esto, solo use el método fetchAll de PDO. Dado que solo está seleccionando una sola columna, puede obtenerla como una matriz de cadenas.
<?php $sql = "SELECT orderDetails FROM tasks WHERE open=1"; $stmt = $pdo->prepare($sql); $stmt->execute(); $array = $stmt->fetchAll(PDO::FETCH_COLUMN, 0); header("Content-Type: application/json"); echo json_encode($array);Ahora que tiene una matriz de cadenas, puede hacer lo que quiera con ella, incluso obtener su longitud .
<script> $(function(){ $.ajax({ method: "POST", url: "getDetails.php", success: function(backData) { // now you can work with backData as an object var count = backData.length; $("#details").append("<div>You have " + count + " results.</div>"); for (var i = 0; i < count; i++) { $("#details").append("<div>" + backData[i] + "</div>" } } }); }); <script> También tenga en cuenta que le faltaba un par de cierre }) en su código JavaScript.