Hola amigos... les cuento tengo un codigo en el cual hago una lista de una tabla con un boton radio de un formulario para seleccionar alguno y editarlo... tengo estos códigos
form_editar.asp
Código:
<% @Language="VBscript" %>
<html>
<head>
<title>Modificar registros de la base de datos</title>
</head>
<body>
<%
'Declaración de variables
Dim conn
Dim rs
Dim sql
'Fijación del valor de Path (lugar donde esta la base de datos)
Const Path = "usuarios.mdb"
'Establecemos la conección a la base de datos
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("" & Path & ""))
'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
sql="Select * From clientes"
'Ejecución de la orden
Set rs = Conn.Execute(sql)
%>
<form method="post" action="editar.asp?id=<% = rs("id") %>" target="_blank">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="20%">ID</td>
<td width="20%">NOMBRE</td>
<td width="20%">APELLIDO</td>
<td width="20%">TELEFONO</td>
<td width="20%">CIUDAD</td>
</tr>
<% Do While Not rs.Eof %>
<tr>
<td width="20%"><input type="radio" name="id" value="<% = rs("id") %>"></td>
<td width="20%"><% = rs("nombre") %></td>
<td width="20%"><% = rs("apellido") %></td>
<td width="20%"><% = rs("telefono") %></td>
<td width="20%"><% = rs("ciudad") %></td>
</tr>
<%
rs.MoveNext
Loop
%>
</table>
<input type=submit>
</form>
</body>
</html>
editar.asp
Código:
<title>Modificar registros de la base de datos</title>
</head>
<body>
<%
'Declaración de variables
Dim conn
Dim rs
Dim sql
'Fijación del valor de Path (lugar donde esta la base de datos)
Const Path = "usuarios.mdb"
'Recuperando el valor de id pasado por la URL
id = Request.Querystring("id")
'Establecemos la conección a la base de datos
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("" & Path & ""))
'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
sql="Select * From clientes Where id = " & id &""
'Ejecución de la orden
Set rs = Conn.Execute(sql)
'Asignando valores de campos
nombre = rs("nombre")
apellido = rs("apellido")
telefono = rs("telefono")
ciudad = rs("ciudad")
%>
<form method="post" action="editar1.asp?id=<% = id %>">
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="8%">id:</td>
<td width="92%"><% = id %></td>
</tr>
<tr>
<td width="8%">Nombre:</td>
<td width="92%"><input type="text" name="nombre" size="20" value="<% = nombre %>"></td>
</tr>
<tr>
<td width="8%">Apellido:</td>
<td width="92%"><input type="text" name="apellido" size="20" value="<% = apellido %>"></td>
</tr>
<tr>
<td width="8%">Telefono:</td>
<td width="92%"><input type="text" name="telefono" size="20" value="<% = telefono %>"></td>
</tr>
<tr>
<td width="8%">Ciudad:</td>
<td width="92%"><input type="text" name="ciudad" size="20" value="<% = ciudad %>"></td>
</tr>
</table>
<p align="center"><input type="submit" value="Enviar"><input type="reset" value="Restablecer"></p>
</form>
</body>
</html>
editar1.asp
Código:
<script>
window.opener.location.reload();
window.close();
</script>
<%
'Declaración de variables
Dim conn
Dim rs
Dim sql
'Fijación del valor de Path (lugar donde esta la base de datos)
Const Path = "usuarios.mdb"
'Recuperando el valor de id pasado por la URL
id = Request.Querystring("id")
'Recuperando valores del formulario
nombre = Request.Form("nombre")
apellido = Request.Form("apellido")
telefono = Request.Form("telefono")
ciudad = Request.Form("ciudad")
'Establecemos la conección a la base de datos
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("" & Path & ""))
'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
sql="Update clientes set nombre = '" & nombre & "', apellido = '" & apellido & "', telefono = " & telefono & ", ciudad = '" & ciudad & "' Where id = " & id & ""
'Ejecución de la orden
Set rs = Conn.Execute(sql)
%>
Bueno el problema es que cuando selecciono un elemento de la lista que no sea el primero en editar.asp me aparece siempre el formulario con los valores del primer registro y no se porque no me pillo mi error... si alguien me pudiera corregir... le agradeceria.... gracias de antemano y saludos