Foros del Web » Programando para Internet » Javascript »

problema con un combo anidado y comillas "

Estas en el tema de problema con un combo anidado y comillas " en el foro de Javascript en Foros del Web. Hola!! Resulta que tengo un combo anidado que llama a una función javascript en un evento onchange desde el primer combo para que carge el ...
  #1 (permalink)  
Antiguo 22/03/2011, 02:42
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 17 años
Puntos: 2
problema con un combo anidado y comillas "

Hola!!
Resulta que tengo un combo anidado que llama a una función javascript en un evento onchange desde el primer combo para que carge el segundo combo.
Ésto lo hago en php
Código PHP:
Ver original
  1. <select name='provincia' id='provincia' value='' onchange='javascript:rellenaPueblos(this.value)' style='width:150px'>
Y lo siguiente en javascript
Código Javascript:
Ver original
  1. function rellenaPueblos(id_provincia)
  2. {
  3.     document.formulario.pueblo.length=0;
  4.     /*document.formulario.poblacion.options[0] = new Option("","","defaultSelected","");*/
  5.     var indice=1;
  6.     <?
  7.         $conexion = conectar();
  8.         $sql_poblacion = "SELECT * from poblaciones";
  9.         $rs_poblacion = mysql_query($sql_poblacion, $conexion);
  10.         if(mysql_num_rows($rs_poblacion)>0)
  11.         {
  12.             while($row_poblacion = mysql_fetch_assoc($rs_poblacion))
  13.             {
  14.    
  15.     ?>
  16.     if(id_provincia=='<?=$row_poblacion["id_provincia"]?>')
  17.     {
  18.     document.formulario.pueblo.options[indice] = new Option("<?=$row_poblacion["nombre_poblacion"]?>","<?=$row_poblacion["id_poblacion"]?>");
  19.     indice++;
  20.     }
  21.     <?
  22.             }
  23.         }
  24.     ?>
  25. };

Hasta aquí todo está correcto y me lo mostraría sin problemas a no ser porque en algunos pueblos existen algunas palabras entrecomilladas (Morón "La Chica").
Como veis en la función javascript extraigo los datos de la base de datos primero y le digo después que me los inserte en el combo, pero no hay manera.

Conoceis la solución??

Gracias y buen dia a tod@s.
  #2 (permalink)  
Antiguo 22/03/2011, 09:05
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: problema con un combo anidado y comillas "

buenas...

desde php, tienes que escapar las comillas antes de imprimir el contenido al script. no se cual es la funcion mas adecuada pero creo que con addslashes es suficiente.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 23/03/2011, 01:31
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 17 años
Puntos: 2
Respuesta: problema con un combo anidado y comillas "

Gracias zerokilled.
Funcionó a la perfección.
Esta línea fué la que cambié en la función javascript
Código Javascript:
Ver original
  1. document.formulario.pueblo.options[indice] = new Option("  
  2.  
  3. <?=addslashes($row_poblacion["nombre_poblacion"])?>","
  4.  
  5. <?=$row_poblacion["id_poblacion"]?>");

Saludos y que tengais un buen dia!!

Etiquetas: combo, comillas, anidados
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 18:39.