Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-01-2005
Avatar de aom
aom aom is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 106
Poder: 22
aom Va por buen camino
Al cargar datos del formulario se cortan los valores con mas de una palabra

Hola,
trabajo con un formulario y la mecánica es la siguiente:
- El formulario se envía a si mismo y en él verifico si hay errores. Si los hay, muestro los campos del formulario y aqui tengo un problema. En los campos de tipo edición únicamente aparece la primera palabra si tiene varias.
Utilizo la clase smarty para trabajar con plantillas y los datos del formulario los guardo en la clase cliente

P.Ej: El nombre es "Manolito Gafotas"
Si muestro los datos de esta forma:
Código PHP:
$smarty->assign('VALOR_NOMBRE',"\"$cliente->nombre\""); 
El campo contiene "Manolito Gafotas"
En cambio, si los muestro de esta otra:
Código PHP:
$smarty->assign('VALOR_NOMBRE',$cliente->nombre); 
El campo contiene "Manolito"
Si muestro el valor de la propiedad nombre
Código PHP:
echo($cliente->nombre); 
esta contiene "Manolito Gafotas"

No es un gran problema el tener que mostrar los campos de esta forma:
Código PHP:
$smarty->assign('VALOR_NOMBRE',"\"$cliente->nombre\""); 
Pero por legibilidad me gusta más la otra.
Por último os comento que este problema me había ocurrido sin trabajar con plantillas, asi que no es un problema de estas.
¿Por qué no aparece todo el campo?

Gracias
Responder Con Cita
  #2  
Antiguo 03-01-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No teniendo ni idea de lo que se supone que hace la clase smarty ni su método Assign es difícil saber qué pasa. Pero si dices que lo mismo te ha sucedido sin plantillas ¿por qué no pones un ejemplo del fallo con código simple de php?

// Saludos
Responder Con Cita
  #3  
Antiguo 03-01-2005
Avatar de aom
aom aom is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 106
Poder: 22
aom Va por buen camino
Disculpa Roman, tienes razon . Es que tenia más a mano el ejemplo que he puesto.

En este caso ocurre lo mismo:
Código PHP:
      <td colspan="3"><input name="Nombre" type="text" class="InputReadOnly" id="Nombre" size="50" readonly="true"<?php echo (" value=\"$R->TOMADOR \">")?></td>
$R es un registro de una base de datos
El valor de $R->TOMADOR es , por ejemplo, "Manolito Gafotas" y muestra "Manolito Gafotas"

Si lo dejo asi
Código PHP:
      <td colspan="3"><input name="Nombre" type="text" class="InputReadOnly" id="Nombre" size="50" readonly="true"<?php echo (" value=".$R->TOMADOR .">")?></td>
muestra únicamente "Manolito"

Gracias
Responder Con Cita
  #4  
Antiguo 03-01-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En el código incorrecto, la llamada a echo produce la siguiente salida:

value=Manolito Gafotas>

de manera que el navegador interpreta que el valor del parámetro value es simplemente Manolito y toma a Gafotas como otro parámetro.

Te quedaría más claro y correcto si lo haces así:

Código PHP:
<input name="Nombre" type="text" value="<?=$R->TOMADOR?>">
es decir, dejando que php se ocupe sólo de poner el valor y no el resto del código html.

// Saludos
Responder Con Cita
  #5  
Antiguo 03-01-2005
Avatar de aom
aom aom is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 106
Poder: 22
aom Va por buen camino
Hola Roman,gracias por las molestias.
De nuevo te pido disculpas, porque el código que estaba mal lo puse de memoria. De todas formas, me aclaraste las ideas y ya se donde está el error.

Al componer la cadena value="XXXXX" no escribía las comillas y por eso cortaba lo que había a partir del espacio (value=Manolito Gafotas)
Yo pensando que podría ser un bug de php o algo raro y resulta que era una tonteria que no veia.

Gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:58:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi