Es mi primera pregunta aquí, así que sea amable ^^ Me estoy entrenando algo de JS/Jquery/Ajax. Corto: Proyecto para filtrar la ubicación más cercana de una empresa específica a nuestro código postal actual. Entonces, aquí está mi "trabajo" hasta ahora: en index.php estoy usando un formulario simple como este:
<form id="ajaxForm"> <input type="number" class="form-control" id="plzInput" name="plzInput" placeholder="99999" aria-label="Username" aria-describedby="basic-addon1" required> <button type="submit" id="plzSubmit" name="plzSubmit" class="btn btn-primary">Search</button> </form>
Estoy pasando algunos datos a ajax.php usando ajax:
var request; $("#ajaxForm").submit(function (event) { event.preventDefault(); if (request) { request.abort(); } var $form = $(this); //Caching var $inputs = $form.find("input, select, button, textarea"); var serializedData = $form.serialize(); $inputs.prop("disabled", true); request = $.ajax({ url: "ajax.php", type: "post", data: serializedData }); request.done(function (response, textStatus, jqXHR) { console.log("in ajax.php geschrieben!"); console.log(response); showResults(response); }); request.fail(function (jqXHR, textStatus, errorThrown) { console.error( "The following error occurred: " + textStatus, errorThrown ); }); request.always(function () { $inputs.prop("disabled", false); }); }); function showResults(data){ alert(data); } });
Aquí los datos finalmente se manejan usando php (consultas de db, cálculos, resultado). Ahora estoy luchando sobre cómo enviar mis resultados de ajax.php de vuelta al índice. Con todo, quiero enviar una matriz desde SQLquery y mostrar esos valores en las entradas html existentes usando js/jquery en index.php. Pero no sé por qué JS/Jquery no puede leer la respuesta de ajax.php. Creo que hay algo mal con las matrices php frente a las matrices js. ¿Hay alguna forma de enviar respuestas "múltiples" o incluso una serie de respuestas?
¡Me alegro por cada ayuda!
Una buena forma de hacerlo es usando JSON.
En el lado de PHP, en ajax.php
, usa json_encode() para codificar su matriz como una cadena.
Esa cadena JSON luego se recibe en su Javascript AJAX como response
. Allí puede volver a convertirlo en una matriz con JSON.parse() :
let array = JSON.parse(response);
JQuery también tiene una abreviatura para esto, consulte: