Foros del Web » Programando para Internet » PHP »

Problema con comillas entre javascript y PHP.

Estas en el tema de Problema con comillas entre javascript y PHP. en el foro de PHP en Foros del Web. Buenas gente... mirar tengo un problemilla con las comillas (o eso creo). Código PHP:      echo  "<td width='10%'><a href='javascript :window.open('datos_alquiler.php?lang=" . $idiomas [ $idioma ][ 'idioma' ]. ...
  #1 (permalink)  
Antiguo 09/03/2007, 21:18
 
Fecha de Ingreso: abril-2006
Mensajes: 218
Antigüedad: 18 años, 7 meses
Puntos: 0
Problema con comillas entre javascript y PHP.

Buenas gente... mirar tengo un problemilla con las comillas (o eso creo).

Código PHP:
    echo "<td width='10%'><a href='javascript:window.open('datos_alquiler.php?lang=".$idiomas[$idioma]['idioma']."&code=".$row["codigo"]."', '','width=100,height=100');void(0)>".$idiomas[$idioma]['ver']."</a></td>"
Con este código, lo que hago es que al clickear sobre la palabra VER/VIEW, me abre un popup, pasandome las variables lang y code, y se supone que con un ancho de 100 y altura de 100. Bien, pues nada de nada, no me abre nada :(
Supongo que será por problema de las comillas :(

El código sin generarlo desde PHP, sería:

Código PHP:
<a href="javascript:window.open('map.php','','width=300,height=200');void(0)">enlace</a
Alguien me puede ayudar?

Muchas gracias!

Última edición por erponcios; 09/03/2007 a las 21:36
  #2 (permalink)  
Antiguo 10/03/2007, 06:09
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Re: Problema con comillas entre javascript y PHP.

Código PHP:
<?php 
echo '<td width="10%"><a href="javascript:window.open(\'datos_alquiler.php?lang='.$idiomas[$idioma]['idioma'].'&code='.$row["codigo"].'\', \'\',\'width=100,height=100\');void(0)">'.$idiomas[$idioma]['ver'].'</a></td>'
?>
Acostumbrate a que los atributos html vayan con comillas dobles: aunque funcione con comillas simples, es incorrecto ;)
Adicionalmente, te recomiendo que leas esto: http://www.php-hispano.net/articulos/faq-del-echo.html
  #3 (permalink)  
Antiguo 10/03/2007, 10:19
Avatar de HMSJUAN  
Fecha de Ingreso: febrero-2007
Mensajes: 54
Antigüedad: 17 años, 8 meses
Puntos: 1
Re: Problema con comillas entre javascript y PHP.

he visto por ahi que usan el echo de php de la forma siguiente
no lo he probado

Código PHP:

 
echo <<< HTML
<a href="javascript:window.open('map.php','','width=300,height=200');void(0)">enlace</a>  
HTML; 
si estoy equivocado me corrigen...

Un Novato
  #4 (permalink)  
Antiguo 10/03/2007, 11:26
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Re: Problema con comillas entre javascript y PHP.

HMSJUAN, si, es una forma válida (no recuerdo el nombre) el usar <<<, pero eso daría error (tu ejemplo), y aún así, a mi parecer, no es la mejor manera.

Como dice Panino5001 esa manera, si es de las mejores si de meter html en php se trata, aunque siempre recomiendo separar el html del php...que sentido tiene meter un tag A en php (ni hablar de gente que mete tablas y tablas de html sin sentido alguno....)? en tu ejemplo solo tenes dos variables, por lo que es mejor:
Código PHP:
<? ... ?>
...
<a href="javascript:window.open('map.php?var1=<?=$var1?>&amp;var2=<?$var2;?>','','width=300,height=200');void(0)">enlace</a> 
...
<? ... ?>
Si aún así crees que es mejor hacer un echo, escapa las " o ', según el caso, con una \ delante de esta, ej:

Código PHP:
echo "algo con \"comillas\" dobles "

Cita:
Acostumbrate a que los atributos html vayan con comillas dobles: aunque funcione con comillas simples, es incorrecto
Exacto!
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 10/03/2007, 11:33
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 4 meses
Puntos: 6
Re: Problema con comillas entre javascript y PHP.

Cita:
Iniciado por nicolaspar Ver Mensaje
aunque siempre recomiendo separar el html del php...que sentido tiene meter un tag A en php (ni hablar de gente que mete tablas y tablas de html sin sentido alguno....)? en tu ejemplo solo tenes dos variables, por lo que es mejor:
Código PHP:
<? ... ?>
...
<a href="javascript:window.open('map.php?var1=<?=$var1?>&amp;var2=<?$var2;?>','','width=300,height=200');void(0)">enlace</a> 
...
<? ... ?>
Totalmente de acuerdo, incluso si tenes separado el dominio de la presenacion, un maquetador podria mover dicho enlace sin siquiera preocuparse de que se rompa o deje de funcionar.

Aun no entiendo eso de meter todo el codigo html en variables php y demás, desconozco si lo hace "mas rapido" o que, pero no lo veo practico para nada.
Y me sorprende porque esa tecnica la vi en algun que otro sitio "grande" de codigo abierto. Si mal no recuerdo, meneame.net esta hecho de dicha forma.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #6 (permalink)  
Antiguo 10/03/2007, 12:21
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Re: Problema con comillas entre javascript y PHP.

Completamente de acuerdo con Federico y Nicolás. La sintaxis mencionada se llama heredoc.
Personalmente, no me gusta. También estoy de acuerdo en no incluir html dentro de variables, a menos que sea estrictamente necesario, que casi nunca lo es, e incluso puede ser más lento si se usan comillas dobles, ya que en ese caso PHP examina inútilmente todo el código html para ver si hay variables que interpretar.
Ojo, en el ejemplo, <?$var2;?> debería ser =<?=$var2?> o =<?php echo $var2 ?>
  #7 (permalink)  
Antiguo 10/03/2007, 13:22
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Re: Problema con comillas entre javascript y PHP.

heredoc, sisi, se me había hecho una lagunota mental, lo use para experimentar un par de veces y no le encontré sentido alguno.

Y si, así es, me falto el echo..., además que el comentario que haces sobre comillas simples y dobles es totalmente correcto y muy útil al thread. EJs para dormidos :P :
Código PHP:

$a 
"a";
echo 
"Que lindo dí$a"#Que lindo día
echo 'Que lindo dí$a'#Que lindo dí$a 
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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 21:13.