Foros del Web » Programando para Internet » ASP Clásico »

Text.value = "Campo de una BD"

Estas en el tema de Text.value = "Campo de una BD" en el foro de ASP Clásico en Foros del Web. Hola amigos del desarrollo, aqui estoy con esta duda. Tengo un texto y quiero que se llene con el valor de un campo que tengo ...
  #1 (permalink)  
Antiguo 07/09/2006, 15:12
 
Fecha de Ingreso: junio-2006
Mensajes: 104
Antigüedad: 18 años
Puntos: 1
Pregunta Text.value = "Campo de una BD"

Hola amigos del desarrollo, aqui estoy con esta duda.
Tengo un texto y quiero que se llene con el valor de un campo que tengo en una BD, tengo una idea pero no se si se pueda:

<input type="text" name="precio" size="12" id="precio" value="<%=productos_Sql%>" disabled>

creo q en el id = al campo que deseo.
value = lugar donde almaceno los datos de esa tabla o es a mi RS?

aqui les pondo un poco de mi code:
Código HTML:
<% // mi RS
productos_Sql = "Select * from precios ORDER BY tipo_producto"
set rs = CreateObject("ADODB.Recordset")
rs.Open productos_Sql, Conn
.
.
.
<input type="text" name="precio" size="12" id="precio" value="<%=productos_Sql%>" disabled>
%>
tambien habia pensado en hacer una consulta aparte para llenarlo, creo q seria algo asi:
Código HTML:
<%
pre_sql="Select Precios from Precios where Tipo_Producto = '" & Request.Form("T1") & "'"
set rs2 = CreateObject("ADODB.Recordset")
rs2.Open pre_Sql, Conn
%> 
Pero no se como hacer que me traiga el resultado correcto, ya q en el text me imprime "Select Precios from Precios..."

Espero su respuesta, de antemano muchas gracias.
  #2 (permalink)  
Antiguo 07/09/2006, 16:17
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años, 1 mes
Puntos: 4
checate este manual q te dice como recuperar datos de una base de datos. http://www.webestilo.com/asp/asp07c.phtml
  #3 (permalink)  
Antiguo 08/09/2006, 07:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 17 años, 9 meses
Puntos: 0
hola Jbco, bueno yo creo que hay algo que estas haciendo mal y esq estas intentado recuperar con ese value="<%=productos_Sql%>" la sentencia que usas para coger los datos y no los propios datos de la tabla. A ver si me explico, lo que tienes que hacer es sacar cada uno de los registros de tu recordset, en este caso rs y del registro que quieras el valor del campo que elijas, para que lo veas con un ejemplo, si tienes la tabla precios y quieres sacar el campo precio seria algo asi como:
<input type="text" name="precio" size="12" id="precio" value="<% &rs("precio")& %>" de este modo estas sacando en el text el campo precio de la sentencia que has ejectuado en producto_Sql. Ahora bien, por lo que veo tu estas recuperando todos los registros de tu tabla precios y quieres sacarlos en un text, eso o te dara error o solo te sacara el precio del primer registro ya que rs("precio") contendra solo una columna (la columna precio) pero varias filas.
Mira bien a ver lo que quieres hacer porque de la forma en que yo lo veo no hay manera de sacar en el text el valor de algun campo de tu sentencia.
Si no me he explicado bien dimelo.
Salu2.
  #4 (permalink)  
Antiguo 08/09/2006, 09:37
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 9 meses
Puntos: 1
Exato tiene toda la razon jasersa, en dado caso que quieras traer varios input de una consulta metes en un while esto: <input type="text" name="precio" size="12" id="precio" value="<% &rs("precio")& %>" asi te saldran varios input con los valores de tus campos, pero ojo en el id debes de ponerle un contador para que cada campo tenga diferente id, espero darme a entender
__________________
<>< EN MOMENTOS DE CRISIS, SOLO LA IMAGINACIÓN ES MÁS IMPORTANTE QUE EL CONOCIMIENTO <><
  #5 (permalink)  
Antiguo 08/09/2006, 13:50
 
Fecha de Ingreso: junio-2006
Mensajes: 104
Antigüedad: 18 años
Puntos: 1
Hola amigos, he entendido bien sus soluciones y muchas gracias, pero aun tengo el problema. Les plateo lo siguiente:
* He creado un nuevo Rs solo para esta consulta
* En mi sentencia sql solo quiero traer un registro de mi campo precios q se encuentra en la tabla precios, en la cual manejo id q es un index e id2 q es el identificador de los registros para evitas su repeticion
* Tengo un text con un tipo de producto, el cual uso en la comparacion where.
* T1 es el text donde quiero enviar el precio, de obtengo en mi pre_sql

Código HTML:
<% pre_Sql="Select * from Precios where Tipo_Producto = '" & Request.Form("T1") & "'"
set rs2 = CreateObject("ADODB.Recordset")
rs2.Open pre_Sql, Conn %>
.
.
.
<input type="text" name="precio" size="12" id="precios" value="<% &rs2("precios")& %>" disabled> 
Al generar este codigo me manda un error, el cual es el siguiente:
Error de compilación de Microsoft VBScript (0x800A0400)
Se esperaba una instrucción
/compras.asp, línea 117
&rs2("precios")&
y la linea 117 es el <input>, espero me puedan ayudar, y q me tengan paciencia, ya q apenas tengo 3 meses en estos del ASP y me esta dando un poco de problemillas. Gracias.
  #6 (permalink)  
Antiguo 08/09/2006, 13:57
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 9 meses
Puntos: 1
Prueba poniendo asi tu input.

<input type="text" name="precio" size="12" id="precios" value="<%=rs2("precios")%>" disabled>
__________________
<>< EN MOMENTOS DE CRISIS, SOLO LA IMAGINACIÓN ES MÁS IMPORTANTE QUE EL CONOCIMIENTO <><
  #7 (permalink)  
Antiguo 08/09/2006, 14:25
 
Fecha de Ingreso: junio-2006
Mensajes: 104
Antigüedad: 18 años
Puntos: 1
ya lo intente como me dijiste:
<input type="text" name="precio" size="12" id="precios" value="<%=rs2("precios")%>" disabled>

y me manda este error:
ADODB.Field (0x80020009)
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.
/compras.asp

q esta mal?
  #8 (permalink)  
Antiguo 08/09/2006, 14:27
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Eso quiere decir que el recordset esta vacio, verifica que te este trayendo los registros necesarios.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 08/09/2006, 15:04
Avatar de juanmi321  
Fecha de Ingreso: septiembre-2004
Mensajes: 262
Antigüedad: 19 años, 9 meses
Puntos: 1
Exacto. EOF quiere decir que el resultset no te esta trayebdo nada, te aconsejo que primero imprimas en pantalla la variabel que el estas pasando para que hagas la consulta y depsues lo pruebes directo en la base de datos una vez jale ahi ya lo pruebes en tu codigo
__________________
<>< EN MOMENTOS DE CRISIS, SOLO LA IMAGINACIÓN ES MÁS IMPORTANTE QUE EL CONOCIMIENTO <><
  #10 (permalink)  
Antiguo 09/09/2006, 10:13
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 17 años, 9 meses
Puntos: 0
¿porque en la sentencia sql pones Request.Form("T1"), el valor de T1 realmente de donde lo obtienes o lo quieres obtener de ese campo de texto en la misma pagina? Request.Form ("T1") lo que hace es coger el valor que has introducido en el componente input cuyo name=T1 y mediante el botón de tipo submit redireccionar ese valor hacia otro tipo de variable o componente o lo que sea, quiero decir con esto que si tu no haces un submit request.form("T1") no tiene ningun valor ya que creo que estas en la misma pagina.
Para ello, tendras que poner un boton de tipo submit :<input type="submit" name="comparacion" value="Mostrar Precio"> que al presionarlo te redireccione (metodo action de tu formulario y method=post) a la misma pagina en la que estas y entonces ahora si que podras hacer la sentencia
<% pre_sql="Select precio From Precios Where tipo_producto=' " & Request.Form("T1") & " ' "
set rs2 = CreateObject("ADODB.Recordset")
rs2.Open pre_Sql, Conn %>
.
.
.
<input type="text" name="precio" size="12" id="precios" value="<%=rs2("precios")%>" disabled>
Yo creo que esa es la forma si quieres sacar los datos en la misma pagina web.
De todas formas, si lo que yo te he dicho es lo que pretendes, deberias poner una sentencia if para decir que si se ha presionado el boton submit entonces te haga el pre_sql etc... Chicos corregirme si me equivoco y asi vamos aprendiendo todos.
A ver si le resolvemos pronto la duda a jbco.
  #11 (permalink)  
Antiguo 12/09/2006, 11:15
 
Fecha de Ingreso: junio-2006
Mensajes: 104
Antigüedad: 18 años
Puntos: 1
hola de nuevo, muchas gracias por sus comentarios.
jasersa, el T1 es un texto deonde e mandado el tipo de producto q me puedes servir para una compracion, en este caso para la parte del where. Por desgraca e intentado de varias maneras y aun asi no me sale, este es mi codigo completo, si alguien tiene alguna idea o me quiere dar un jalon de orejas por estos adelante, ya q quiero aprender ASp a como de lugar.

Código HTML:
<html> <head>
<link rel="STYLESHEET" type="text/css" href="css/letras.css">
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<title>Ventas</title> 

<script language = "JavaScript">
<%'CONSULTA PARA OBTENER LOS DATOS
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("./Ventas2.mdb"))

productos_Sql = "Select * from precios ORDER BY tipo_producto"
set rs = CreateObject("ADODB.Recordset")
rs.Open productos_Sql, Conn
x=0
%>

// FUNCION DE COMBO BOX COMBINADO

function sublist(inform, selecteditem)
{ inform.subcatagory.length = 0

<%
count= 0
y=0
do while not rs.eof
%>
x = <%= trim(y) %>;

subcat = new Array();
subcatagorys = "<%=(rs("tipo_producto"))%>";
subcatagoryof = "<%=(rs("id"))%>";
subcatagoryid = "<%=(rs("tipo_producto"))%>";
subcat[x,0] = subcatagorys;
subcat[x,1] = subcatagoryof;
subcat[x,2] = subcatagoryid;

FRMCLIENTE.T1.value= document.FRMCLIENTE.subcatagory.value;
if (subcat[x,1] == selecteditem) {
	var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]);
	inform.subcatagory.options[inform.subcatagory.length]=option<%= trim(count)%>;
	<% pre_sql="Select precio From Precios Where tipo_producto=' " & Request.Form("T1") & " ' "%>}
		
<%
count = count + 1
y = y + 1
rs.movenext
loop
rs.close
%>
}

function numero(e,txt){
	tecla = (document.all) ? e.keyCode : e.which;
	if (tecla==8) return true;
	if (tecla==46 && txt.indexOf('.') != -1) return false;
	patron = /[\d\.]/;
	te = String.fromCharCode(tecla);
	return patron.test(te); }
</script>

</head>

<body >

<h1 align="center">Venta de productos</h1>
<form name="FRMCLIENTE" method=POST target=_self action="">
<p align="center">Seleccione el producto a comprar:<select size="1" id="Productos" name="Productos" onChange = "javascript:sublist(this.form, Productos.value);">

<option selected>Selecciona un Producto</option>
<%productos_Sql = "Select distinct id, productos from productos ORDER BY Productos"
rs.Open productos_Sql, Conn
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("productos")%></option>
<%rs.movenext
loop%>
</select>

</p>

<table border="1" width="80%" height="58" align="center">
  <tr>
    <td width="25%" height="1" align="center">
      <p align="center"><b>Productos</b></p>
    </td><td width="13%" height="1" align="center">
      <p align="center"><b>Cantidad</b></p>
    </td>
    <td width="12%" height="1" align="center">
      <b>Precio</b>
    </td><td width="21%" height="1" align="center">
      <p align="center"><b>Sub-Total</b></p>
    </td>
    <td width="29%" height="1" align="center">
      <p align="center"><b>Comprar</b></p>
    </td>
  </tr>
  <tr>
    <td width="25%" height="1">
<SELECT id="subcatagory" name="subcatagory" size="1" onChange = "javascript:sublist(T1.value = this.value);">
	<Option selected value="none"></option>
</SELECT>

    </td>
    <td width="12%" height="1" align="center">
      <p align="center"><input type="text" name="Cantidad" size="10" onkeypress="return numero(event,this.value)"></p>
    </td>
    <td width="21%" height="1">

    <input type="text" name="precio" size="12" disabled>

  	</td>
    <td width="29%" height="1">
      <p align="center">
    <input type="text" name="T1" size="23"  disabled>

    </td>
  </tr></table>
<%set rs=nothing
conn.close
set conn=nothing%>

</Form></body> 
Espero q alguien tenga pasiencia para decirme mis errores. gracias, continuare trabajando en esto.
  #12 (permalink)  
Antiguo 15/09/2006, 08:07
 
Fecha de Ingreso: junio-2006
Mensajes: 104
Antigüedad: 18 años
Puntos: 1
Solucionado

Teniendo en cuenta todo el exito que ha tenido esta pregunta y gracias a la participacion de todos ustedes compañeros del desarrollo web y claro, los golpazos de cabeza en el esctitorio, por fin le pude dar solucion. aqui se las mando.

Venta.asp
<html> <head>
<link rel="STYLESHEET" type="text/css" href="css/letras.css">
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<title>Ventas</title>
<!--#include file="Funciones.asp"-->
</head>

<body >
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("./Ventas2.mdb"))%>

<h1 align="center">Venta de productos</h1>
<form name="FRMCLIENTE" method=POST target=_self action="">
<p align="center">Seleccione el producto a comprar:

<select size="1" id="Productos" name="Productos" onChange = "javascript:sublist(this.form, Productos.value);">
<option selected>Selecciona un Producto</option>
<%productos_Sql = "Select distinct id, productos from productos ORDER BY Productos"
rs.Open productos_Sql, Conn
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("productos")%></option>
<%rs.movenext
loop%>
</select>

</p>

<table border="1" width="80%" height="58" align="center">
<tr>
<td width="25%" height="1" align="center">
<p align="center"><b>Productos</b></p>
</td><td width="13%" height="1" align="center">
<p align="center"><b>Cantidad</b></p>
</td>
<td width="12%" height="1" align="center">
<b>Precio</b>
</td><td width="21%" height="1" align="center">
<p align="center"><b>Sub-Total</b></p>
</td>
<td width="29%" height="1" align="center">
<p align="center"><b>Comprar</b></p>
</td>
</tr>
<tr>
<td width="25%" height="1">
<SELECT id="subcatagory" name="subcatagory" size="1" onChange = "javascript:sublist(precio.value = this.value);">
<Option selected value="none"></option>
</SELECT>

</td>
<td width="12%" height="1" align="center">
<p align="center"><input type="text" name="Cantidad" size="10" onkeypress="return numero(event,this.value)"></p>
</td>
<td width="21%" height="1">

<input type="text" name="precio" size="12" disabled>

</td>
<td width="29%" height="1">
<p align="center">
<input type="text" name="T1" size="23" disabled>

</td>
</tr></table>
<%set rs=nothing
conn.close
set conn=nothing%>

</Form></body>

************************************************** ******************

Funciones.asp

<script language = "JavaScript">
<%'CONSULTA PARA OBTENER LOS DATOS
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("./Ventas2.mdb"))

productos_Sql = "Select * from precios ORDER BY tipo_producto"
set rs = CreateObject("ADODB.Recordset")
rs.Open productos_Sql, Conn
x=0
%>

// FUNCION DE COMBO BOX COMBINADO
function sublist(inform, selecteditem)
{ inform.subcatagory.length = 0

<%
count= 0
y=0
do while not rs.eof
%>
x = <%= trim(y) %>;

subcat = new Array();
subcatagorys = "<%=(rs("tipo_producto")) %>";
subcatagoryof = "<%=(rs("id"))%>";
subcatagoryid = "<%=(rs("precios"))%>";
subcat[x,0] = subcatagorys;
subcat[x,1] = subcatagoryof;
subcat[x,2] = subcatagoryid;

FRMCLIENTE.precio.value= document.FRMCLIENTE.subcatagory.value;

if (subcat[x,1] == selecteditem) {
var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]);
inform.subcatagory.options[inform.subcatagory.length]=option<%= trim(count)%>;}

<%
count = count + 1
y = y + 1
rs.movenext
loop
rs.close
%>
}

function numero(e,txt){
tecla = (document.all) ? e.keyCode : e.which;
if (tecla==8) return true;
if (tecla==46 && txt.indexOf('.') != -1) return false;
patron = /[\d\.]/;
te = String.fromCharCode(tecla);
return patron.test(te); }
</script>

************************************************** **********
Espero les sirva, para un futuro. La parte coloreada es donde mando el precio de mi BD a un text. Gracias y nos vemos pronto.
Si hay dudas pregunten y si alguien tiene ideas mejores, q las pongan, asi nos ayudamos a mejorar nuestras Web's.
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 22:42.