Foros del Web » Programando para Internet » Javascript »

una historia complicadilla

Estas en el tema de una historia complicadilla en el foro de Javascript en Foros del Web. Hola q tal?? Tengo una página asp dd el usuario inserta en textboxes variables para una consulta sql, pues bien, tengo una función, que me ...
  #1 (permalink)  
Antiguo 22/07/2003, 06:11
 
Fecha de Ingreso: julio-2003
Mensajes: 164
Antigüedad: 20 años, 9 meses
Puntos: 0
una historia complicadilla

Hola q tal??

Tengo una página asp dd el usuario inserta en textboxes variables para una consulta sql, pues bien, tengo una función, que me rellena, en funcion de lo q pone, un campo oculto, la funcion es esta:

<script language="Javascript">
function f_pueblo(){
window.document.form1.puebloculto.value = "Recibo.CodMunicipioFiscal Like '" + document.form1.pueblo.value + "%'";
}
</script>

me funciona perfectamente, lo q pasa es q si el usuario inserta más de un codigo de municipio, la sql se quedaría así:

.... where Recibo.CodMunicipioFiscal Like '12135,12900%', y entonces no me encuentra ningún registro.
¿Cómo podría modificar esta función para q la sql se quedara más o menos así:
.... where Recibo.CodMunicipioFiscal Like '12135%' or Recibo.CodMunicipioFiscal Like '12900%' ???

Gracias muchas.
  #2 (permalink)  
Antiguo 22/07/2003, 06:35
Avatar de eDuDiTo  
Fecha de Ingreso: junio-2002
Ubicación: Murcia
Mensajes: 173
Antigüedad: 21 años, 10 meses
Puntos: 0
En realidad no es tan complicado, yo tengo hecho eso mismo pero en VBScript y la cadena SQL la monto en la página ASP que recibe el formulario.

La parte que genera el WHERE queda de la siguiente forma:

sBusqueda = Request("sBusqueda")
palabras = Split(sBusqueda, " ", -1, 1)
nPalabras=UBound(palabras, 1)
i=0
sql=""

while i <= nPalabras
palabra=palabras(i)
if (i=0) then
sql = sql & " (sNombre LIKE '%" & palabra & "%')"
else
sql = sql & " OR (sNombre LIKE '%" & palabra & "%')"
end if
i=i+1
Wend


La función Split te genera una matriz con todas las palabras que queden delimitadas por el caracter que pongas entre comillas (en el ejemplo es un espacio). Con Ubound obtienes el número de elementos y ya solo queda recorrer la matriz y montar la cadena.

Facil ¿no?
  #3 (permalink)  
Antiguo 22/07/2003, 06:42
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61


Con un sistema muy útil que tiene caricatos (hola monstruo!)
Código:
window.document.form1.puebloculto.value ="Recibo.CodMunicipioFiscal Like '" +  document.form1.pueblo.value .split(",").join("or Recibo.CodMunicipioFiscal Like ")+"%";
No lo he probado, pero creo que funcionará. Lo que tienes que dejar claro es que tienen que separar los códigos por comas.

Un saludo!

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 22/07/2003, 06:44
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Vaya! se me adelantó eDUDITO (hola!!) con unas cuantas líneas más...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 22/07/2003, 07:42
 
Fecha de Ingreso: julio-2003
Mensajes: 164
Antigüedad: 20 años, 9 meses
Puntos: 0
Amigos, soys una máquina ¿cómo le podeis pillar tanto? pq mira q le he dao vueltas y más vueltas y he consultado en bastantes foros y vosotros a la primera!!

o casi... pq.... lo he probado pero hay un pequeño error q no he conseguido subsanar.
Si el usuario pone dos códigos, la sql queda así:

Recibo.CodMunicipioFiscal Like '35325or Recibo.CodMunicipioFiscal Like '54645%' y debería quedar así:

Recibo.CodMunicipioFiscal Like '35325%' or Recibo.CodMunicipioFiscal Like '54645%'

he intentado poner
window.document.form1.puebloculto.value = "Recibo.CodMunicipioFiscal Like '" + document.form1.pueblo.value + "%'" + .split(",").join("or Recibo.CodMunicipioFiscal Like '")+"%'"
pero no ha funcionado, ¿alguna ayudita??
Gracias.
  #6 (permalink)  
Antiguo 22/07/2003, 08:31
 
Fecha de Ingreso: julio-2003
Mensajes: 164
Antigüedad: 20 años, 9 meses
Puntos: 0
Perfect!!!

Creo q ya lo he solucionado

No saben lo agradecido q estoy a ustedes.
Gracias infinitas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:10.