Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 HTML
 Problema con textarea
 Foro Bloqueado  Tema Bloqueado


Autor Temas
sonia
Starting Member

España
31 Posts
Mensajes - 15 Dec 2001 :  17:46:12  Ver Perfil  Enviar Email
Mi problema es el siguiente:
Tengo que recuperar los datos de una base de datos y mostrarlos en un
formulario. Para ello he pensado en el tipo text pero en ese caso recupera solo hasta el primer espacio en blanco, por esto pensé usar el tipo textarea pero ocurre lo siguiente, aparece el dato sangrado, con lo cual cuando se introduce un dato nuevo en la base de datos lo hace con espacios en blanco delante. Por otra parte aparecen las antiestéticas barras de scroll para el caso de una línea. Quería saber si alguien podía decirme como quitar la barra de scroll y lo más importante ese sangrado que aparece.
Gracias.

asharak
Junior Member


210 Posts
Posted - 15 Dec 2001 :  22:13:33  Ver perfil  Enviar e-mail  Enviar asharak un Mensaje Yahoo!e
Puedes utilizar en ASP la intrupcion Trim() de VBScript, esta instruccion quita los espacios en blanco por delante y por detras de una cadena, puedes usarla antes de insertar en la BD y/o antes de poner los datos en el TEXTAREA

Se usa asi:
Trim(variableDeCadena)
Si haces
Trim(" hola ")
Te devuelve
"hola"

Espero que te sirva ;)

asharakInicio Pagina

sonia
Starting Member

España
31 Posts
Posted - 17 Dec 2001 :  18:14:37  Ver perfil  Enviar e-mail
Muchas gracias, probaré a ver que tal va.

Inicio Pagina

sonia
Starting Member

España
31 Posts
Posted - 19 Dec 2001 :  21:04:22  Ver perfil  Enviar e-mail
He probado a aplicar la funcion Trim a lo que muestro y a lo que guardo pero parece que no funciona. Al introducir texto por defecto, aparece un espacio en blanco al final.
He pensado que una forma sería eliminar el último caracter del textarea. Me explico guardar toda la cadena en una variable a excepcion del último caracter, que es el espacio, pero no se como hacerlo porque no tengo ni idea de Visual Basic, así que agradecería cualquier ayuda por vuestra parte.
O también si sabeis como coger TODOS los datos con un text porque solo recupera hasta el primer espacio en blanco.
GRACIAS.

Inicio Pagina

asharak
Junior Member


210 Posts
Posted - 19 Dec 2001 :  23:47:09  Ver perfil  Enviar e-mail  Enviar asharak un Mensaje Yahoo!e
Lo que dices del textarea es un poco raro, yo lo estoy usando desde hace tiempo sin ningun problema, tal vez en algun paso de tu codigo tienes algun fallo.

¿Como envias los datos desde el textarea al archivo ASP para que los inserte en BD ...?

¿Compones tu misma la cadena (desde JAvaScript) para enviarla al ASP y recogerla con QueryString o dejas que el Action del FORM se ocupe de eso?

Si me comentas algo tal vez pueda ayudarte :)

asharakInicio Pagina

asharak
Junior Member


210 Posts
Posted - 21 Dec 2001 :  23:10:43  Ver perfil  Enviar e-mail  Enviar asharak un Mensaje Yahoo!e
En el textarea se ingresara todo lo que haya entre los tags <TEXTAREA></TEXTAREA>, si por ejemplo, al obtener los datos de BD haces algo asi:
<TEXTAREA name="puesElNombre">
<%=Trim(varRecordset("campoBD"))%>
</TEXTAREA>
En el textarea apareceran tambien los espacios qye hay entre el tag y el inicio de ASP "<%" y entre el final de asp "%>" y el tag de cierre ...

Si haces esto:

<TEXTAREA name="puesElNombre"><%=Trim(varRecordset("campoBD"))%></TEXTAREA>

no deberia darte ese problema, con todos los tags juntos como buenos hermanos ;)

Para asegurarte usas tambien Trim al obtener los datos, antes de insertarlos en la BD ...

Trim(request.form("puesElNombre"))

y si insertas componiendo la "insert" que no se te olvide que los signos ' de delimitacion esten tambien pegados, es decir

" insert into miTabla (campoTal) values ('" & Trim(request.form("puesElNombre")) & "')"

como ves las comillas simples estan pegadas a las dobles, si dejas un espacio en blanco este se insertara...

A ver si asi finalmente consigues resultados ;)

asharakInicio Pagina

sonia
Starting Member

España
31 Posts
Posted - 22 Dec 2001 :  00:52:39  Ver perfil  Enviar e-mail
Te mando el codigo y espero que puedas echarme una manilla:

Este es el fichero que recoge los datos de la BD.

<HTML>
<HEAD>
<TITLE>Enciclopedia de cine español </TITLE>
</HEAD>
<BODY BACKGROUND="fondos\1.bmp" TEXT="white">


<% Dim titulo,Conex,RS,sql,RS2,sql2

titulo=Request.Form("TITULO")


Set Conex = Server.CreateObject ("ADODB.Connection")
Conex.Open = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\Mipagina\BD\Cine.mdb"
Set RS = Server.CreateObject("ADODB.RecordSet")
Set RS2 = Server.CreateObject("ADODB.RecordSet")

sql="SELECT * FROM PELICULA WHERE TITULO=('"&titulo&"')"
sql2="SELECT IMAGEN FROM FOTOGRAMAS WHERE TITULO=('"&titulo&"')"

RS.Open sql, Conex
RS2.Open sql2, Conex

%>

<FORM ACTION="http://127.0.0.1/modifica.asp?tit=<%Response.Write titulo %>"
METHOD="post" >

<P>
TITULO: <TEXTAREA name=TITULONUE cols=30 rows=1>
<%Response.Write Trim(titulo)%>
</TEXTAREA> <BR>
</P>

<P>
DIRECTOR: <TEXTAREA name=DIRECTOR cols=30 rows=1>
<%Response.Write Trim(RS("DIRECTOR"))%>
</TEXTAREA> <BR>
</P>

<P>
GUION: <TEXTAREA name=GUION cols=30 rows=1>
<%Response.Write Trim(RS("GUIONISTA"))%>
</TEXTAREA> <BR>
</P>


<P>
MUSICA: <TEXTAREA name=MUSICA cols=30 rows=1>
<%Response.Write Trim(RS("MUSICA"))%>
</TEXTAREA> <BR>
</P>


<P>
FOTO: <TEXTAREA name=FOTO cols=30 rows=1>
<% if not RS2.EOF then
Response.Write Trim(RS2("IMAGEN"))
end if %>
</TEXTAREA> <BR>
</P>


<P>
SINOPSIS: <BR>
<TEXTAREA name=SINOPSIS cols=45 rows=5>
<%Response.Write Trim(RS("SINOPSIS"))%>
</TEXTAREA>
</P>


<P>
<INPUT type=submit value="MODIFICAR">
</P>


</FORM>

<%
RS.Close
Set RS = Nothing

RS2.Close
Set RS2 = Nothing

Conex.Close
Set Conex = Nothing
%>

</BODY>
</HTML>


Y este el que recoge los datos del formulario para volver a meterlos en la BD:


<HTML>
<HEAD>
<TITLE> Enciclopedia de cine español </TITLE>
</HEAD>
<BODY BACKGROUND="fondos\1.bmp" TEXT="white">

<%
Dim titulo,titulonue,director,guion,musica,foto,Conex,sql,sqlb

'titulo = Request.QueryString("TIT")

titulonue = Trim(Ucase(Request.Form("TITULONUE")))
director = Trim(Ucase(Request.Form("DIRECTOR")))
guion = Trim(Ucase(Request.Form("GUION")))
musica = Trim(Ucase(Request.Form("MUSICA")))
foto = Trim(Ucase(Request.Form("FOTO")))
sinopsis = Trim(Ucase(Request.Form("SINOPSIS")))

sql= "INSERT INTO PELICULAPR (TITULO,DIRECTOR,GUIONISTA,MUSICA) VALUES ('"&titulonue&"','"&director&"','"&guion&"','"&musica&"')"
sqlb= "DELETE FROM PELICULAPR WHERE TITULO=('"&titulo&"')"

if titulonue="" then
Response.Write "DEBE INTRODUCIR UN TITULO"
elseif director="" then
Response.Write "DEBE INTRODUCIR EL NOMBRE DEL DIRECTOR"
else

Set Conex=Server.CreateObject("ADODB.Connection")
Conex.Open= "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\Mipagina\BD\Cine.mdb"

Conex.Execute sqlb
Conex.Execute sql

Response.Write "LOS DATOS HAN SIDO MODIFICADOS SATISFACTORIAMENTE"


Conex.Close
Set Conex=Nothing

end if

%>


</BODY>
</HTML>

Inicio Pagina

asharak
Junior Member


210 Posts
Posted - 23 Dec 2001 :  01:06:35  Ver perfil  Enviar e-mail  Enviar asharak un Mensaje Yahoo!e
Es extraño esto que dices:
Para ello he pensado en el tipo text pero en ese caso recupera solo hasta el primer espacio en blanco.

Lo normal es que en el tipo text se recuperen todos los datos sin ningun tipo de problema ¿?¿?¿?.

Tal vez en el codigo que envias puedas solucionar lo del espacio en blanco al final haciendo:
<TEXTAREA name="TITULONUE" cols="30" rows=1><%=Trim(titulo)%></TEXTAREA>

... en todos los text area (es decir, juntando los tags.

Nota: En este caso el response.write se puede sustituir por =, cuando pones una expresion entre <% y %>, es decir, puedes hacer <%=variableConTexto%> tranquilamente. (No creo que esto influiya en tu problema, pero como duendes hay en todos los ordenadores ... ;)

Otra cosa es que tal y como haces la insert y la select tendras problemas con datos que contengan comillas simples, ya que son los delimitadores de los campos ... prueba insertando una comilla simple y lo veras.

Para solucionarlo usa el caracter de escape de las comillas simples que es la misma comilla simple. Es decir, para insertar Pepe's tendrias que poner Pepe''s ...

Simplemente usa la funcion Replace asi:
cadenaSQL = "insert into unaTabla (unCampo) values ('" & replace(Trim(unaVariable),"'","''") & "')"

A ver si hay suerte ahora :)
Cualquier cosa me comentas ok
Felices fiestas

asharakInicio Pagina

sonia
Starting Member

España
31 Posts
Posted - 02 Jan 2002 :  19:31:01  Ver perfil  Enviar e-mail
Probe lo que dijiste y ahora por fin FUNCIONA. Gracias, parece que era el espacio que dejaba entre los tags.

Feliz año!!!

Inicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar