En realidad lo que obtienes es el conjunto de valores para una query.
La query en SQL es la que te devolverá el JSON usando una función ST_AsGeoJSON.
Tu problema no está en el JSON, en todo caso, sino en la construcción del IN() de la consulta a la base.
¿Verificaste lo que te dije?
¿Miraste qué tan bien queda construida la consulta SQL?
Algo como esto alcanza para ver lo quese armó, y verificar dónde está el error:
Código PHP:
Ver original$metodo = $_POST['elemento2'];
$query = "SELECT code, descripcion, ST_AsGeoJSON(the_geom, 4) AS geojson FROM vw_metodo where code in (".ltrim($metodo,',').") ORDER BY code "
echo $query;
Que nos digas que no te funciona no es información suficiente. Necesitamos ver lo que tu ves para entender el problema, porque como ya te demostré, la cosa funciona.
Lo que sí noto es que estás usando
ltrim(), con un caracter que se indica quitar...
Según dice el manual de referencia de PHP:
Cita: string ltrim ( string $str [, string $character_mask ] )
Retira espacios en blanco (u otros caracteres) del inicio de un string.
Parámetros ¶
str
El string de entrada.
character_mask
Se puede también especificar los caracteres que se desean retirar por medio del parámetro character_mask. Simplemente se listan todos los caracteres que se quieren retirar. Con .. se puede especificar un rango de caracteres.
En otras palabras, estás
quitando las comas que el SQL necesita para separar los valores de busqueda del IN().
¿Por qué las quitas?
En ese contexto, si tienes más de un valor, la query debe estar devolviendo un error de sintaxis...