Foros del Web » Programando para Internet » PHP »

Problema al llamar una función Javascript

Estas en el tema de Problema al llamar una función Javascript en el foro de PHP en Foros del Web. Hola, pues tengo un problema al llamar a esta funcion: Código: onClick="modificarControl('<?php echo $row->numero; ?>','<?php echo $row->control; ?>',1);"></td> la variable $row->control es: <font color="#009900">4545</font> el ...
  #1 (permalink)  
Antiguo 25/11/2013, 12:29
 
Fecha de Ingreso: marzo-2013
Mensajes: 41
Antigüedad: 11 años
Puntos: 0
Problema al llamar una función Javascript

Hola, pues tengo un problema al llamar a esta funcion:
Código:
onClick="modificarControl('<?php echo $row->numero; ?>','<?php echo $row->control; ?>',1);"></td>

la variable $row->control es: <font color="#009900">4545</font>

el problema es que las " de color interfieren con las " de la función en si, por lo que no toma el valor de la variable.

Alguna idea de como solucionarlo??

Gracias
  #2 (permalink)  
Antiguo 25/11/2013, 13:18
 
Fecha de Ingreso: noviembre-2013
Mensajes: 7
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Problema al llamar una función Javascript

no es ortodoxo lo que quieres hacer pero bueno, prueba con esto,

onClick="modificarControl('<?php echo $row->numero; ?>','<?php echo str_replace('"',"\'",$row->control);?>',1);">

Saludos
  #3 (permalink)  
Antiguo 25/11/2013, 16:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema al llamar una función Javascript

Hola:

No veo problemas javascript, sino en el "escapado" de datos... con \" se insertan comillas y también puedes informarte de la sintaxis heredoc...

Tema movido desde javascript.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 25/11/2013, 16:37
 
Fecha de Ingreso: marzo-2013
Mensajes: 41
Antigüedad: 11 años
Puntos: 0
Respuesta: Problema al llamar una función Javascript

Cita:
Iniciado por ouijaonline Ver Mensaje
no es ortodoxo lo que quieres hacer pero bueno, prueba con esto,

onClick="modificarControl('<?php echo $row->numero; ?>','<?php echo str_replace('"',"\'",$row->control);?>',1);">

Saludos
con eso se arregla, ahora me surge el mismo problema pero al llamar a la misma función con jquery:
Código:
'<td><input type="button" value="Modificar" onClick="modificarPunto('+numeroPunto+','+temp+')"></td>'+
Donde temp era antes $row->control
  #5 (permalink)  
Antiguo 25/11/2013, 16:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema al llamar una función Javascript

También podrías escapar las comillas con addslashes. Con respecto al problema con jQuery, ¿de dónde obtienen numeroPunto y temp sus valores?, ¿son variables de PHP o JS?, si es lo segundo, no veo la necesidad de añadir los signos de concatenación.

Si tienes problemas para escapar los valores en JS, podrías escaparlos antes de asignarlos a sus respectivas variables.

Saludos
  #6 (permalink)  
Antiguo 26/11/2013, 07:29
 
Fecha de Ingreso: marzo-2013
Mensajes: 41
Antigüedad: 11 años
Puntos: 0
Respuesta: Problema al llamar una función Javascript

Cita:
Iniciado por Alexis88 Ver Mensaje
También podrías escapar las comillas con addslashes. Con respecto al problema con jQuery, ¿de dónde obtienen numeroPunto y temp sus valores?, ¿son variables de PHP o JS?, si es lo segundo, no veo la necesidad de añadir los signos de concatenación.

Si tienes problemas para escapar los valores en JS, podrías escaparlos antes de asignarlos a sus respectivas variables.

Saludos
Asi obtengo los valores:

Código:
var numeroPunto = $('#numero').val();
	var descripcionPunto = $('#descrip').val();
        var temp = "\'"+descripcionPunto+"\'";
  #7 (permalink)  
Antiguo 26/11/2013, 16:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema al llamar una función Javascript

Así como en PHP existe la función addslashes que añade una barra invertida para escapar las comillas simples y dobles, en JavaScript, puedes usar el método replace para reemplazar uno o más caracteres dentro de la cadena por otro u otros.

Código Javascript:
Ver original
  1. var cadena = "It's a good day";
  2. var regexp = /\'/g;
  3. document.write(cadena.replace(regexp, "\\'")); //Imprime: It\'s a good day

Prueba con esto y nos cuentas cómo te fue. Saludos.
  #8 (permalink)  
Antiguo 27/11/2013, 09:22
 
Fecha de Ingreso: marzo-2013
Mensajes: 41
Antigüedad: 11 años
Puntos: 0
Respuesta: Problema al llamar una función Javascript

Cita:
Iniciado por Alexis88 Ver Mensaje
Así como en PHP existe la función addslashes que añade una barra invertida para escapar las comillas simples y dobles, en JavaScript, puedes usar el método replace para reemplazar uno o más caracteres dentro de la cadena por otro u otros.

Código Javascript:
Ver original
  1. var cadena = "It's a good day";
  2. var regexp = /\'/g;
  3. document.write(cadena.replace(regexp, "\\'")); //Imprime: It\'s a good day

Prueba con esto y nos cuentas cómo te fue. Saludos.
Hola, he probado lo que me dices, pero al hacerlo el html solo me muestra el valor de la variable y nada más. ¿?
  #9 (permalink)  
Antiguo 27/11/2013, 09:37
 
Fecha de Ingreso: marzo-2013
Mensajes: 41
Antigüedad: 11 años
Puntos: 0
Respuesta: Problema al llamar una función Javascript

Bueno, más o menos me sale ya. Utilizando el método que me has enseñado (replace):

Código:
var descripcionControl = $('#desConAna').val();
var temp = "\'"+descripcionControl+"\'";
                var temp = temp.replace(/"/, "");
                var temp = temp.replace(/"/, "");
Supongo que se podrá hacer mejor, pero solo consigo quitar una de las comillas cada vez, por eso llamo dos veces al método.
  #10 (permalink)  
Antiguo 27/11/2013, 11:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema al llamar una función Javascript

Tienes que colocar el modificador g al final de la expresión regular, para que las sustituciones se realicen en todas las coincidencias y no solo en una.

Código Javascript:
Ver original
  1. var temp = temp.replace(/"/g, "");
  #11 (permalink)  
Antiguo 27/11/2013, 14:40
 
Fecha de Ingreso: marzo-2013
Mensajes: 41
Antigüedad: 11 años
Puntos: 0
Respuesta: Problema al llamar una función Javascript

Vale, Muchas Gracias, no sabia el porque de la g.

Etiquetas: funcion, javascript, variable
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 03:42.