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

Fallo en el queystring

Estas en el tema de Fallo en el queystring en el foro de ASP Clásico en Foros del Web. Hola saludos a todos. Tengo un problema con un querystring La pagina debe actualizar las notas cuando seleccionemos el nuevo valor del slect y este. ...
  #1 (permalink)  
Antiguo 20/09/2010, 06:00
Avatar de Batan  
Fecha de Ingreso: septiembre-2010
Ubicación: Madrid
Mensajes: 408
Antigüedad: 13 años, 7 meses
Puntos: 63
Fallo en el queystring

Hola saludos a todos.

Tengo un problema con un querystring

La pagina debe actualizar las notas cuando seleccionemos el nuevo valor del slect y este. Este valor se graba en la base de datos sustituyendo a la anterior.

Mi problema es que al elegir el valor y darle al submit me da el error de queystring no definida
Microsoft VBScript runtime error '800a01f4'

Variable is undefined: 'Querystring'

/a/n/g/angelgon/Prueba/nota_cambio.asp, line 12

y no entiendo por que.

Base de datos con 4 campos: Matricula(numerico, clave primaria), Nota(numero), Aptitud(char), Nombre(char) base de datos de accsess.

Alumnos_registrado.asp
Cita:
Código ASP:
Ver original
  1. <%
  2. Dim sql
  3. Dim BD
  4. Dim recordset
  5. Dim ruta_fichero
  6. ruta_fichero=server.mappath("Calificaciones.mdb")
  7. Set BD=Server.createobject("ADODB.connection")
  8. BD.Open"provider=Microsoft.jet.OLEDB.4.0;Data Source="&ruta_fichero
  9. sql="SELECT *from Alumnos"
  10. Set recordset=CreateObject("ADODB.recordset")
  11. recordset.open sql,BD
  12.  
  13. Response.write ("<table width='100%' border='1' cellpadding='0' cellspacing='0' style='border: 1px solid #aaaaaa;color:#820000;font-family:verdana;font-size:12'><tr><td width='33%' align='center'><b>Nombre</b></td><td width='33%' align='center'><b>Nota</b></td><td width='34%' align='center'><b>Aptitud</b></td></tr></table><br>")
  14. response.write ("<table width='100%' border='1' cellpadding='0' cellspacing='0' style='border: 1px solid #aaaaaa;color:#373737;font-family:arial;font-size:12'")
  15. recordset.movefirst
  16.     While Not recordset.eof or recordset.Bof
  17.         if recordset.fields("Aptitud") = "Apto" then
  18.             response.write ("<tr bgcolor='#D7E4FF'><td width='33%' align='center'>")
  19.             response.write recordset.fields("Nombre")
  20. ' En el action creo la ruta del querystring
  21.             response.write ("</td><td width='33%' align='center' valign='middle'><br><form action='nota_cambio.asp?matri="&recordset.fields("Matricula")&"' method='post'>")
  22.             response.write recordset.fields("Nota")
  23. 'el select envia la nota a la que se va actualizar.
  24.             response.write (" <select name='nota_cambio'><option value='0'>0</option><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option></select> <input style='background-color:#5474F1;border-color:#0C3DAF:;width: 20px;font-family: verdana;border: 1px solid #103EF5;color: #FFFFFF;font-weight: bold;font-size: 10px;' type='submit' value='OK'></form>")
  25.             response.write ("</td><td width='34%' align='center'>")
  26.             response.write recordset.fields("Aptitud")
  27.             response.write ("</td></tr>")
  28.         Else
  29.             response.write ("<tr bgcolor='#FFD2D2'><td width='33%' align='center'>")
  30.             response.write recordset.fields("Nombre")
  31.             response.write ("</td><td width='33%' align='center'>")
  32.             response.write recordset.fields("Nota")
  33.             response.write ("</td><td width='34%' align='center'>")
  34.             response.write recordset.fields("Aptitud")
  35.             response.write ("</td></tr>")
  36.         end if
  37. recordset.movenext
  38.     Wend
  39. response.write("</table>")
  40. response.write("<br><br>")
  41. BD.close
  42. Set BD=Nothing
  43. %>
  44.  
  45. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  46. <html xmlns="http://www.w3.org/1999/xhtml">
  47. <head>
  48.  
  49. <style type="text/css">
  50. #nombre {
  51.     font-family:Verdana;
  52.     font-size:15px;
  53.     color:#1F1F1F}
  54.  
  55. #boton {
  56.     background-color:#5474F1;
  57. border-color:#0C3DAF:;
  58.     width: 60px;
  59.     font-family: verdana;
  60.     border: 1px solid #103EF5;
  61.     color: #FFFFFF;
  62.     font-weight: bold;
  63.     font-size: 10px;}
  64.    
  65. #alum {
  66.     font-family:Verdana;
  67.     font-size:12px;
  68.     color:#8D0905;
  69. </style>
  70. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  71. <title>Documento sin t&iacute;tulo</title>
  72. </head>
  73.  
  74. <body>
  75. <form action="nota.asp" method="post">
  76. <div id="alum">
  77.   <div align="center"><strong>Alumno registrado</strong></div>
  78. </div>
  79.     <br />
  80.     <div id="nombre">
  81.       <div align="center">Nombre:
  82.         <input name="nombre">
  83.         Matricula: <input name="matricula">
  84.         <select name="nota">
  85.           <option value="0">0</option>
  86.           <option value="1">1</option>
  87.           <option value="2">2</option>
  88.           <option value="3">3</option>
  89.           <option value="4">4</option>
  90.           <option value="5">5</option>
  91.           <option value="6">6</option>
  92.           <option value="7">7</option>
  93.           <option value="8">8</option>
  94.           <option value="9">9</option>
  95.           <option value="10">10</option>
  96.         </select>
  97.         <select name="aptitud">
  98.           <option value="Apto">Apto</option>
  99.           <option value="No apto">No apto</option>
  100.         </select>
  101.       </div>
  102.     </div>
  103.     <div align="center">
  104.       <input id="boton" type="submit" value="ENVIAR">
  105.      </div> <br/>
  106. </form>        
  107. </body>
  108. </html>
nota_cambio.asp
Cita:
Código ASP:
Ver original
  1. <%option explicit
  2. 'defino las variables
  3. '<---
  4. Dim nota_cambio
  5. Dim nom
  6. Dim sql
  7. Dim BD
  8. Dim ruta_fichero
  9. Dim nombre
  10. '--->
  11.  
  12. nom=Querystring("matri")'con el querystring llamo a lo que contenga el parametro matri de alumno_registrado.asp
  13. nota_cambio=request.form("nota_cambio")'contiene el valor del select que envio del boton submit echo en asp
  14. ruta_fichero=server.mappath("Calificaciones.mdb")'Base de datos con 4 campos: Matricula(numerico, clave primaria), Nota(numero), Aptitud(char), Nombre(char) base de datos de accsess
  15. Set BD=Server.createobject("ADODB.connection")
  16. BD.Open"provider=Microsoft.jet.OLEDB.4.0;Data Source="&ruta_fichero
  17.  
  18.     sql="update set Nota="&nota_cambio&" where Matricula="&nom&""'este es un update que me actualiza la nota. cuando elijo el valor del select se queda grabado en la variable nota_cambio y  en matricula se queda grabado la matricula de cada alumno
  19.  
  20.  
  21. BD.execute(sql)'ejecuto la sentencia sql
  22. BD.close'cierro la base de datos
  23. Set BD=Nothing
  24. Response.Redirect("alumno_registrado.asp")'para finalizar redirecciono a alumno_registrado.asp y con los camios ya echos
  25. %>
Todos los archivos los tengo alojados en brinkster.

esta es la ruta de mi prueba [URL="http://angelgon.brinkster.net/Prueba/alumno_registrado.asp"]http://angelgon.brinkster.net/Prueba/alumno_registrado.asp[/URL]
  #2 (permalink)  
Antiguo 20/09/2010, 07:01
 
Fecha de Ingreso: junio-2010
Mensajes: 68
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Fallo en el queystring

Si se lo pasas por parámetro en al query el formato para recoger el dato sería:

nom=Request.Querystring("matri")
  #3 (permalink)  
Antiguo 20/09/2010, 07:06
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Fallo en el queystring

Hola

En principio te marca ese error, por que estás usando option explicit. Pero aunque definieras Querystring, continuaría marcando error ya que así no puede recoger una variable. Hay 3 maneras
Cita:
Request(variable) ---> puedes usarla
Request.QueryString(variable) ----> puedes usarla
Requets.Form(variable) -----> NO puedes usarla
El poder o no poder usar una manera u otra, viene determinada por la manera en la que se envía los datos

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 20/09/2010, 07:36
Avatar de Batan  
Fecha de Ingreso: septiembre-2010
Ubicación: Madrid
Mensajes: 408
Antigüedad: 13 años, 7 meses
Puntos: 63
Respuesta: Fallo en el queystring

Ok muchas gracias.
Aun asi me da un error en la sintaxis del update.

Microsoft JET Database Engine error '80040e14'

Syntax error in UPDATE statement.

/a/n/g/angelgon/Prueba/nota_cambio.asp, line 20

Lo he miradotodo detallladamente y nose que puede pasar.

Gracias por todo y saludos
  #5 (permalink)  
Antiguo 20/09/2010, 07:44
Avatar de Batan  
Fecha de Ingreso: septiembre-2010
Ubicación: Madrid
Mensajes: 408
Antigüedad: 13 años, 7 meses
Puntos: 63
Respuesta: Fallo en el queystring

Perdonen ya vi el fallo era una tonteria.
Me falto poner el nombre de la tabla en la sentencia update.
Muchas gracias por todo y si es verdad me habia olvidado que querystring tambien lleva request.
Saludos

Etiquetas: fallo
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 14:23.