Tengo un script que envía parámetros a través de JS $ .ajax y en mi página de PHP consulto db y devuelvo datos coincidentes.
echo json_encode(array("matches" => $match));Funciona bien, pero ahora necesito agregar la fecha de las coordenadas como pares de latitud/longitud. Entonces puedo obtener esto a través de un bucle, pero no estoy seguro de cómo devolverlo a mi script.
$crds = array(); foreach ($data as $row) { $lat = $row['lat']; $lon = $row['lon']; $key = $row['key']; $crds[$key] = $lat.'|'.$lon; ... } echo json_encode(array("coords" => $crds));Cuando los datos vuelven a mi secuencia de comandos, puedo ver en respuesta:
{"coords":["44.76315|-101.8113","41.76313|-111.8993","40.76299|-112.8994"]}
No estaba seguro de cómo formatearlo, así que lo uní con una tubería, lo que probablemente sea una mala idea. También en mi secuencia de comandos, necesito recorrerlo para generar una matriz que se verá así:
markerArray.push(L.marker([44.76315,-101.8113])); markerArray.push(L.marker([41.76313,-111.8993])); markerArray.push(L.marker([40.76299,-112.8994]));Siento que no estoy haciendo ningún progreso y estoy tomando malas decisiones de código... Necesito ayuda para desenredar esto. Gracias.
Los datos ya parecen tener la estructura correcta, así que responda tal como están:
echo json_encode(array("coords" => $data));
Luego, en js, haga un bucle sobre él para agregar cada uno a markerArray ( data son la respuesta ajax).
data.coords.forEach((coord) => markerArray.push(L.marker([coord.lat,coord.lon]));