Foros del Web » Programando para Internet » PHP »

Problema con un codigo en PHP

Estas en el tema de Problema con un codigo en PHP en el foro de PHP en Foros del Web. Hola a todos espero que me puedan ayudar soy nuevo en esto del mundo de la programcacion con PHP y tengo una duda estoy creaando ...
  #1 (permalink)  
Antiguo 22/07/2003, 14:20
 
Fecha de Ingreso: julio-2003
Ubicación: Caracas
Mensajes: 19
Antigüedad: 20 años, 8 meses
Puntos: 0
Problema con un codigo en PHP

Hola a todos espero que me puedan ayudar soy nuevo en esto del mundo de la programcacion con PHP y tengo una duda

estoy creaando una tabla por php
es algo asi

echo "<table width='100%' cellspacing='0' cellpadding='0' border='0'> \n";

echo "<a href='http://lMiPagina.com/' OnMouseOver='window.status='Presiona aqui';return true;' OnMouseOut='window.status='';return true;'>Pasa el ratón</a>";

echo "</table> \n";

ahora el problema reside en que no me muestra el mensaje en la barra, si va al vinvulo establecido pero no muestra el mensaje y cuando se carga la la pag abajo dice "lista pero con errores"

que puedo hacer al respecto

Gracias...............
  #2 (permalink)  
Antiguo 22/07/2003, 14:44
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 21 años, 5 meses
Puntos: 1
Mira en mi opinio , lo mejor es dejar el codigo separado de la programacion , es decir que es mejor que no hagas echo de tu HTML mejor sacalo del codigo php algo asi.

<?php
if($algo){
?>
<table><tr><td></td></tr></table>
<a href............ bla bla la
<?php
}else{
bla bla bla bla ?>


Es mejo asi, y asi tambiensolucionarias tu problema

Saludos
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #3 (permalink)  
Antiguo 22/07/2003, 14:48
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Tu problema son las comillas. Este PHP genera el siguiente HTML:
Código PHP:
<a href='http://lMiPagina.com/' OnMouseOver='window.status='Presiona aqui';return true;' OnMouseOut='window.status='';return true;'>Pasa el ratón</a
Si te fijas, solo tienes ', con lo que es imposible saber cuales corresponden a limite del atributo HTML y cuales al codigo javascript.

En casos en que uses echo pero la cadena no contenga variables PHP, es mejor limitar las cadenas con ' en lugar de ", y asi poder usar las " dentro de la cadena sin problemas (pero tendrias el problema conlas ', que debes escapar con \'), aunque en este caso no puedes por los \n. Pero podrias separar estos ultimos:

echo '<a href="http://lMiPagina.com/" OnMouseOver="window.status=\\'Presiona aqui\\';return true;" OnMouseOut="window.status=\\'\\';return true;">Pasa el ratón</a>';

Tambien si no usas codigo PHP, podrias poner el HTML directamente:
Código PHP:
<?php
// codigo PHP
?>
<a href="http://lMiPagina.com/" OnMouseOver="window.status='Presiona aqui';return true;" OnMouseOut="window.status='';return true;">Pasa el ratón</a>
<?php
// mas codigo PHP
?>
Tambien podrias ser mas "moderno" y usar la sintaxis HERDOC: http://www.php.net/manual/en/language.types.string.php . Ahi tambien tienes todas las formas en que puedes manejar cadenas con ', " y demas bichos.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 23/07/2003 a las 14:18
  #4 (permalink)  
Antiguo 23/07/2003, 10:36
 
Fecha de Ingreso: julio-2003
Ubicación: Caracas
Mensajes: 19
Antigüedad: 20 años, 8 meses
Puntos: 0
ya lo resolvi gracias........ Me sirvio el Heredoc string, pero es medio sicopata esta instruccion ya que si separo el cierre de la instruccion de la parte izquierda de la linea me genera un error

ejemplo

$strLinkNumFac = <<<EOD
<a href="Prueba de Enlances 1.html?$NumFacLink" OnMouseOver="window.status='Ver el detalle de los pagos';
return true;" OnMouseOut="window.status='';return true;">$NumFacLink</a>
EOD;

asi funciona

$strLinkNumFac = <<<EOD
<a href="Prueba de Enlances 1.html?$NumFacLink" OnMouseOver="window.status='Ver el detalle de los pagos';
return true;" OnMouseOut="window.status='';return true;">$NumFacLink</a>
EOD;

asi no.... raro no

Gracias por los datos dados
  #5 (permalink)  
Antiguo 23/07/2003, 14:06
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Primero perdon por mi metedura de pata con la cadena delimitada con ', ya que en ese caso necesitas escapar las ' de dentro con \' (lo he corregido en el post anterior).

Y sobre que no te funciona con el EOD; separado, es que la sintaxis es asi de rigida. Debe ir el cierre en la primera columna de la linea y despues del ; no debe venir nada mas, solo el salto de linea. Es asi, es una lata al usar editores que te van tabulando automaticamente. Pero asi lo decidieron.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 20:30.