Interpretar <textarea> con php

Raul
09 de Mayo del 2006
Hola,
Tengo guardado el siguiente código en una base mysql, más concretamente en una tabla llamada formulario que contiene el código de diferentes elementos de un formulario:

if ($_GET['op']=='new'){
if(isset($_GET[descripcion])){
echo "<td width='415' height='25' class='text'><textarea name='".$campo."' cols='70' rows='3' class='text'>";
echo $_GET[descripcion];
}
}
if ($_GET['op']=='view'){
if(isset($filacampo->$campo)){
echo "<td width='415' height='25' class='text'><textarea name='".$campo."' cols='70' rows='3' readonly='readonly' class='text'>";
echo $filacampo->$campo;
}
}
if ($_GET['op']=='edit'){
if(isset($filacampo->$campo)){
echo "<td width='415' height='25' class='text'><textarea name='".$campo."' cols='70' rows='3' readonly='readonly' class='text'>";
echo $filacampo->$campo;
}
}
if ($_GET['op']=='delete'){
if(isset($filacampo->$campo)){
echo "<td width='415' height='25' class='text'><textarea name='".$campo."' cols='70' rows='3' readonly='readonly' class='text'>";
echo $filacampo->$campo;
}
}
echo "</textarea></td>";

El problema que tengo es que no me interpreta el último echo ("</textarea></td>";) y no se cual puede ser el motivo.
Además este error sólo sucede cuando realizamos una consulta a la tabla formulario por el registro textarea, cuando visualizamos un check u otro elemento no da ningun tipo de error, lo visualiza correctamente.

Un saludo

carmarri
09 de Mayo del 2006
Hola. A primera vista parece que no tengas ningún problema. Deberías publicar el código de todo el script, ya que puede ser debido a un error anterior, aunque inapreciable, de todas maneras te doy varios consejos como viejo lobo: para evitarte problemas de secuencias html incompletas deberías acostumbrarte a introducir esas sentencias en formato completo dentro de cada IF. Es decir, en lugar de poner
echo "</textarea></td>";
fuera de todo el código, deberías ponerlo dentro de cada IF:
if ($_GET['op']=='delete'){
if(isset($filacampo->$campo)){
echo "<td width='415' height='25' class='text'><textarea name='".$campo."' cols='70' rows='3' readonly='readonly' class='text'>".$filacampo->$campo."</textarea></td>";
}
}

De esta manera evitarás que la página no se muestre bien, ante cualquier situación inesperada. Los navegadores de última generación tienen un corrector de sintaxis, y cuando no se ha cerrado una tabla la cierran ellos. Pero si no es el caso, como te pasa a tí, al no ejecutar, el cierre de celta y el cierre de textarea, el resultado puede ser imprevisible.

Bueno, ya se que no es la respuesta que esperabas, pero publica el resto de código y te ayudaré.