¿Por que mi buscador no aplica a todos mis campos? (Symfony 6)

56 views
Skip to first unread message

Luis Vallejos

unread,
Jul 17, 2022, 3:57:34 AM7/17/22
to symfony-es
Tengo un proyecto en Symfony 6, tengo una tabla normal que muestra datos desde mi BD y trato de implementarle un buscador (en JavaScript), este funciona para buscar en los campos (nombre, descripción, ubicación etc), pero para los campos Clase y Proyecto (que son foráneos) de otras entidades, no funciona.

Mi tabla:
Screenshot_5.png

Mi javascrip:
Screenshot_6.png

Pero no busca en el campo que corresponde al foraneo de otra tabla

Screenshot_4.png

GRACIAS

Saúl Hernández Arellano

unread,
Jul 18, 2022, 2:59:10 PM7/18/22
to symfony-es
Punto 1.-  NO tiene nada que ver con symfony.  Es  JavaScript  

Punto 2.- Si usas " search"   envés de "indexOf"  ???        
    Search,  es una función  "string"   mientras que indexOf  es de "Array"


Saludos

Luis Vallejos

unread,
Jul 20, 2022, 3:04:01 AM7/20/22
to symfony-es
Creo que si es algo de Symfony, ya que cuando esta asi:

Screenshot_2.png

No busca:

Screenshot_4.png

Pero, cuando esta así: referenciando otro campo que no sea nombre..

Screenshot_1.png

Si busca:

Screenshot_3.png

NO TERMINO DE ENTENDER POR QUE....

Gonzalo Alonso

unread,
Jul 20, 2022, 9:31:35 AM7/20/22
to symfony-es
Definitivamente symfony no es.
Revisa el HTML final generado y el código js.
Podés usar la consola del navegador para hacer pruebas además de agregar algunos log para ver qué pasa.

Luis Vallejos

unread,
Jul 26, 2022, 2:05:59 AM7/26/22
to symfony-es
Lo hago, pero no capto donde esta el error la verdad

Luis Vallejos

unread,
Jul 29, 2022, 3:02:57 AM7/29/22
to symfony-es
Screenshot_3.png

Asi si funciona:

Screenshot_4.png

Luis Vallejos

unread,
Jul 29, 2022, 4:08:08 AM7/29/22
to symfony-es
Y asi, tambien, pero sin comillas no funciona
Screenshot_1.png

No se... pero me funciona...

Screenshot_3.png

Santiago Mena

unread,
Jul 29, 2022, 5:38:20 PM7/29/22
to symfony-es
Quizá es algún carácter especial el que tienes y por eso el buscador erra. Revisa esto: https://twig.symfony.com/doc/2.x/filters/escape.html

Luis Vallejos

unread,
Jul 30, 2022, 3:18:31 AM7/30/22
to symfony-es
Pero caracteres especiales no son eso de "ñ" etc, la verdad, ando perdido con el asunto, probe con otro buscador basado en JS, pareciera que reconociera todo con el mismo nombre, osea no es que no busque, si no que encuentra 3

Screenshot_1.png

Santiago Mena

unread,
Jul 30, 2022, 4:52:54 AM7/30/22
to symfony-es
Entonces claramente el error no es de Symfony.
https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
"El método indexOf() retorna el primer índice en el que se puede encontrar un elemento dado en el array, ó retorna -1 si el elemento no esta presente."

Entonces proba en el if, en su lugar, con:
https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/find

.find( $(_this).val().toLowerCase() )

Luis Vallejos

unread,
Jul 31, 2022, 12:26:11 AM7/31/22
to symfony-es
Algo asi?

if($(this).text().toLowerCase().find( $(_this).val().toLowerCase()))?

Luis Vallejos

unread,
Jul 31, 2022, 12:45:08 AM7/31/22
to symfony-es
TRATO DE PRINTEAR LO QUE TENGO EN EL IF
Screenshot_1.png
 Y con printea así..

Screenshot_2.png

Luis Vallejos

unread,
Jul 31, 2022, 1:05:34 AM7/31/22
to symfony-es
Y cuando hice un registro fuera de esa columna... tampoco la busca...Screenshot_3.png

Luis Vallejos

unread,
Jul 31, 2022, 3:01:06 AM7/31/22
to symfony-es
El resto del codigo es igual al incio, solo cambio el if: 

Screenshot_2.png

Santiago Mena

unread,
Jul 31, 2022, 6:57:41 AM7/31/22
to symfony-es
¿Conoces las expresiones regulares? 

En el each intenta algo así:


cadena = Captura de Pantalla 2022-07-31 a la(s) 07.55.20 a. m..png
busqueda = Captura de Pantalla 2022-07-31 a la(s) 07.55.27 a. m..png

// Código de ejemplo:

cadena = "El resto del codigo es igual al incio, solo cambio el if: ";
busqueda = 'codigo';
expresion = new RegExp('('+ busqueda +' *)', 'i');
hallado = cadena.toLowerCase().match(expresion);

if(hallado) {
console.log('hallado');
} else {
console.log('no hallado');
}

Debería funcionar. Esta es la documentación de match
https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/String/match

Y esta de RegExp
https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/RegExp

Reply all
Reply to author
Forward
0 new messages