Foros del Web » Programando para Internet » PHP »

PHP OO Problema con multiples comillas argumentos

Estas en el tema de Problema con multiples comillas argumentos en el foro de PHP en Foros del Web. Hola, el problema que tengo es que intento mandar un argumento, que es un string, desde php a js. Pero por tener tantas comillas no ...
  #1 (permalink)  
Antiguo 04/05/2016, 05:55
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 10 años, 6 meses
Puntos: 1
Problema con multiples comillas argumentos

Hola, el problema que tengo es que intento mandar un argumento, que es un string, desde php a js. Pero por tener tantas comillas no puedo añadirle mas para pasarle este string os pongo el ejemplo para que os lo aclare mejor:

como veis donde imprimo la primera variable de nombre, esta al estar dentro de onclick tendria que llevar unas comillas por ser un string, pero probando de todas las formas posibles no doy con la acertada ya que se cierran unas comillas, se abren otras...etc
Código PHP:
Ver original
  1. print("<td><a href='#' onclick='mostrarDatosClientes($valor[nombre])'>$valor[nombre]</a></td>");

Esta es la funcion que recogeria del onclick
Código Javascript:
Ver original
  1. function mostrarDatosClientes(nombre){
  2.  alert(nombre);
  3. }

Como deberia pasarle el string nombre del argumento en php, porque me e
  #2 (permalink)  
Antiguo 04/05/2016, 06:35
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Problema con multiples comillas argumentos

Prueba Así:
Código PHP:
Ver original
  1. print("<td><a href='#' onclick='mostrarDatosClientes('".$valor['nombre']."')'>".$valor['nombre']."</a></td>");
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 04/05/2016, 06:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con multiples comillas argumentos

Pues sólo "agregar comillas" no es suficiente.

Imagina que el texto tiene ambas comillas:
Cita:
He said "It's difficult to me..."
Entonces sólo "agregar comillas" también causaría un error de sintaxis:
Código PHP:
Ver original
  1. $texto = <<<X
  2. He said "It's difficult to me..."
  3. X;
  4.  
  5. // MAL
  6. echo "<foo bar='baz('".$texto."')'>";

Es incorrecto porque se produce lo siguiente:
Código HTML:
Ver original
  1. <foo bar='baz'He said "It's difficult to me..."')'>

¿Es HTML válido?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 04/05/2016, 07:06
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Problema con multiples comillas argumentos

Si es para mostrar por un alert puedes utilizar htmlentities

Ejemplo del manual
Código PHP:
Ver original
  1. <?php
  2. $str = "A 'quote' is <b>bold</b>";
  3.  
  4. // Produce: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
  5. echo htmlentities($str, ENT_QUOTES);
  6. ?>
__________________
Unset($vida['malRollo']);
  #5 (permalink)  
Antiguo 04/05/2016, 07:32
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Problema con multiples comillas argumentos

gracias por las respuestas chicos pero me sigue sin funcionar, mandádome un error por consola que me dice, syntax error: unexpected token }
pero fijandome bien en todas las lineas, todos los parentesis y corchetes están bien cerrados.

Código PHP:
Ver original
  1. print("<td><a href='#' onclick='mostrarDatosClientes('".$valor['nombre']."')'>$valor[nombre]</a></td>");
probandolo así no me funciona y me lanza el error que he dicho, pero si cambio la variable nombre por la variable telefono (que al ser un numero no lleva las comillas simples), si que me funciona.

Código PHP:
Ver original
  1. print("<td><a href='#' onclick='mostrarDatosClientes(".$valor['telefono'].")'>$valor[telefono]</a></td>");

porque puede estar pasando esto con el string?
  #6 (permalink)  
Antiguo 04/05/2016, 07:37
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problema con multiples comillas argumentos

Puedes usar algo como:
Código PHP:
Ver original
  1. $valor['nombre'] = 'Jaime';
  2.  
  3. print("<td><a href=\"#\" onclick=\"mostrarDatosClientes('{$valor['nombre']}')\">{$valor['nombre']}</a></td>");
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 04/05/2016, 07:54
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Problema con multiples comillas argumentos

PERFECTOO! ya me va, los malditos caracteres de escape, mira que los probé tambien.... pero lo que no probé fue sustituir las comillas simples por las dobles con los de escape..
Muchas gracias por ayudarme :D

Etiquetas: argumentos, comillas, multiples, 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 01:18.