Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Al cargar datos del formulario se cortan los valores con mas de una palabra (https://www.clubdelphi.com/foros/showthread.php?t=17299)

aom 03-01-2005 16:50:19

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

roman 03-01-2005 17:03:27

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

aom 03-01-2005 17:14:15

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

roman 03-01-2005 17:29:44

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

aom 03-01-2005 17:53:02

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


La franja horaria es GMT +2. Ahora son las 17:55:11.

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