Después de horas de búsqueda y pruebas, finalmente he decidido publicar una pregunta.
Necesito poder hacer algo como esto para trabajar con una función.
var myCSV = [1,3,5,6];Actualmente, puedo obtener el CSV de la base de datos, ya que así es como se almacena, myColumn = 1,3,5,6. Puedo hacer que pase como una respuesta exitosa de AJAX, pero parece querer agregar comillas. Luego traté de agregar la codificación JSON a mi lado de PHP y JSON Parse a la llamada exitosa, pero aún no puedo hacer que la función funcione. El objetivo final es seleccionar casillas de verificación basadas en el valor csv.
Esto funciona
var FilterArray = [1,3,5,6]; // Manually added these numbers as is for testing $('#myForm').find('.checks').each(function () { $(this).prop("checked", ($.inArray(parseInt($(this).val()), FilterArray ) != -1)); });Después de intentar mucho para que mi respuesta de éxito de AJAX funcione en FilterArray, decidí simplemente pasarlo a un valor de entrada y trabajar con él. Sin embargo, no puedo entender cómo no tratarlo como una cadena cuando lo paso a la función. Esto es lo que he probado.
En mi getCSV.php tengo al final esto
json_encode($foundCSV);En mi éxito AJAX
var FilterArray = JSON.parse(response);También lo probé sin json_encode y solo lo envié a un valor de entrada que no agrega comillas.
Entonces, en resumen, ¿cómo puedo tomar un valor almacenado csv, por ejemplo, 1,3,5,6 y pasarlo a una función que funciona como se muestra arriba?
Suponiendo que tiene su cadena en una variable, llamada respuesta, y su valor es "1,3,5,6", puede traducirlo a una matriz de enteros con esto:
response.split(',').map(e => parseInt(e))y luego puede pasar el resultado de esto a su función. Siguiendo con su nombre, el código debería verse así:
var FilterArray = response.split(',').map(e => parseInt(e));Lo que hace el código:
Pregunta aclaratoria: ¿Cómo se ve su $foundCSV en el lado de PHP, antes de codificarlo con json? ¿Es una matriz o una cadena con números separados por comas? Es posible que desee consultar con sus herramientas de desarrollador/depurador qué contiene la respuesta de Ajax. Parece que tienes una cadena pero esperas una matriz.
Si ese es el caso, puede crear una matriz en el lado JS o PHP. Para el lado JS, consulte la respuesta de @GregorioPalama. Alternativamente, podría hacer esto en el lado de PHP, que podría ser más corto:
$response = explode(',', $foundCSV); y luego trabaje con json_encode($response) .