estoy haciendo una llamada ajax a una página php. el php selecciona de la base de datos entre 2 fechas.
este es el php:
if(isset($_POST['fromdate'])){ $fromdate = $_POST['fromdate']; $todate = $_POST['todate']; $sql = "SELECT * FROM expenses WHERE date BETWEEN '$fromdate' AND '$todate' "; $result = mysqli_query($connection, $sql); while($row = mysqli_fetch_array($result)){ $data['amount'] = $row['amount']; $data['date'] = $row['date']; $data['description'] = $row['description']; } echo json_encode($data); }mi llamada ajax se ve así:
$('#new_report').click(function() { var fromdate = $('#fromdate').val(); var todate = $('#todate').val(); $.ajax({ url: 'new_report.php', method:'POST', dataType: 'JSON', data: { 'fromdate' : fromdate, 'todate' : todate }, success:function (data){ } }); });esto funciona muy bien cuando se selecciona por id y solo se obtiene una fila. simplemente puedo:
success:function (data){ var amount = data.amount; var date = data.date; //etc.. }pero dado que es un rango de fechas y obtengo varias filas, ¿cómo trabajo con los datos y los muestro donde los necesito? Sé que podría ir a una nueva página y recorrer los resultados de php, pero me estoy obligando a trabajar con objetos de JavaScript. ¿Cuál es la forma correcta de pensar en este proceso?
Barmar respondió la pregunta, pero aquí está el código php adecuado:
while($row = mysqli_fetch_array($result)){ $results[] = $row; } echo json_encode($results);luego, en javascript puedo mostrarlo y (con suerte) trabajar con él. algo como esto:
success:function (data){ var text = JSON.stringify(data); $('#view').html(text); }