JavaScript - Problemas al pasar valores

   
Vista:

Problemas al pasar valores

Publicado por Damian (12 intervenciones) el 29/10/2010 17:00:53
Bueno, mi problema es cuando se le envia ciertos términos a buscar en la BD de la forma:
"Consulta.php?q=Red&cat=2"

Aca como ven la variable q se le pasa "red" que es algo que el usuario selecciono para buscar su significado, esto anda perfecto el problema viene cuando de una lista larga de terminos el usuario selecciona "AT&T", quedando la consulta asi:
"Consulta.asp?q=AT&T&cat=1"

Entonces que pasa al tener el caracter "&" no me busca lo que el usuario eligió si no que muestra el resultado solo de "AT" y a mi me interesa que sea el que se eligió o sea "AT&T".
Como puedo hacer para que me tome todo el termino y que se de cuenta que no quiero concatenar, ya probe encerrando la variable de esta forma: "'"+idField.value+"'" se encierra entre comillas simples, pero es peor porque no me busca nada y tira error.
La parte de ese codigo la tengo asi:

url=url+"?q="+ idField.value + "&cat="+idABC.value;

Siendo url="Consulta.php" que es donde se les envia estos parámetros.

Espero su ayuda, en todo caso pueden ver mi problema en el sitio: www.glosarioit.com y buscar esos terminos que poseen ese caracter o el "+" o "," como por ejemplo:
-VJ'S
-AT&T
-E&M
-RAID 0+1

Gracias y espero que me puedan orientar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas al pasar valores

Publicado por AndresS (20 intervenciones) el 01/11/2010 14:37:46
Damian,
lo que se puede hacer desde javascript es:

<script>
document.write('<a href="index.php?x='+escape('AT&T')+'">Click</a>');
</script>

utilizando escape('AT&T') transforma el caracter para ser enviado pot la URL. Del otro lado, cuando es tomado, hay que volver a trasformarlo. Ej en PHP es urldecode($_GET['x']);

Otra forma es utilizar PHP:

<a href="index.php?x=<?php echo urlechode('AT&T');?>'">Click</a>

Ver también:
rawurlencode / rawurldecode

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas al pasar valores

Publicado por Damian (12 intervenciones) el 01/11/2010 18:53:23
Hola de nuevo y gracias por responder. Pero te comento que ya había probado con Escape() si bien me soluciona los que son AT&T, T&L, etc. no pasa lo mismo con los términos RAID+0, GTK+, etc. O sea en donde este un "+".
Hay que hacer como una expresión regular o algo asi, entonces cuando aparesca el caracter "&" o "+", remplazarlo por un espacio " " y listo. Pero ni idea como hacerlo.
Gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ScriptShow

RE:Problemas al pasar valores

Publicado por ScriptShow (387 intervenciones) el 01/11/2010 21:07:19
  • ScriptShow se encuentra ahora conectado en el
  • chat de PHP
Saludos Damián,

un ejemplo sencillo sería;

<script language="javascript">
function chequea(tmp){
val=tmp.replace(/[&,+]/g," ");
document.form1.text1.value=val;
}
</script>

<form name="form1">
<input type="text" name="text1" size="20" value="" onkeyup="return chequea(this.value)">
</form>

Con pocos cambios, se puede adaptar fácilmente.

Espero sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas al pasar valores

Publicado por Damian (12 intervenciones) el 02/11/2010 13:21:49
Gracias. Pero me doy cuenta que no me sirve, porque en este caso suprime el "+" o "&" y yo no quiero eso, porque en la BD tiene que viajar por ejemplo "AT&T" y no "AT T", porque si es este último no encuentra nada en la busqueda ya que el término cargado en la BD es "AT&T" y no "AT T".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas al pasar valores

Publicado por Damian (12 intervenciones) el 09/11/2010 19:11:59
Bueno, finalmente pude solucionar el tema de cuando aparecen los caracteres "&", "+", "ñ" en un término en particular.

Para el que le interes, les cuento que la solución fue solamente poner la función encodeURIComponent() en JavaScript, entonces la línea de código me queda así:

url=url+"?q="+ encodeURIComponent(idField.value) + "&cat="+idABC.value;

Y listo, ahora me encuentra todos los términos sin importar que caracter aparezca.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar