Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2699 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] passage de variable d'une page à l'autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP] passage de variable d'une page à l'autre

n°1772325
extra
Posté le 12-08-2008 à 10:08:39  profilanswer
 

Bonjour,
 
Je suis loin d'être un pro en ASP (c'est pour cela que je sollicite votre aide...)
 
Sur une base de données, je voudrai faire une recherche par mot clé, et afficher le tout avec 5 résultats par pages.
 
La première page, ça fonctionne, mais les suivantes, ca bug c'est normal, car en rechargeant la page il fait la relecture du formulaire qui du coup est vide...
 
Comment faire S.V.P.
 
Merci
la page en question (le serveur est Down à l'heure ou j'écris mais cela ne devrait pas durer)http://www.ac-nancy-metz.fr/pres-e [...] /liste.asp
le code
 

Code :
  1. <!-- #include file="_connexion.asp"-->
  2. <html>
  3. <head>
  4. ...
  5. </head>
  6. ... bla bla
  7. <html>
  8. <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
  9.  <form method="POST" name="FrontPage_Form1" onsubmit="return FrontPage_Form1_Validator(this)" language="JavaScript" action="listeR.asp">
  10.   <b>Trier par : <a href="listeN.asp">nom</a>, <a href="listeS.asp">section</a>,
  11.   <a href="listeA.asp">année</a>&nbsp;</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  12.   <!--webbot bot="Validation" b-value-required="TRUE" i-minimum-length="2" -->
  13.   <input type="text" name="recherche" size="20">&nbsp;&nbsp;
  14.         <input type="submit" value="Rechercher" name="B1"></form>
  15. <%mot1=Request.Form("recherche" )
  16. mot=Replace(mot1,"'","''" )
  17. mot=Replace(mot,"<","&lt" )
  18. mot=Replace(mot,">","&gt" )%>
  19. <%if mot="" or mot=" " then%>
  20.  <b>
  21.  Vous n'avez rien saisi !<BR>Merci d'écrire le nom à trouver sur
  22.  cet annuaire, puis de valider en cliquant sur "Rechercher"!<BR>&nbsp;
  23. </b>
  24. <%else%>
  25. <%Nmax = 5 ' nombre par page
  26. Ndeb = Cint(request.queryString("num" ))
  27. ' nombre total de fiches
  28. SQL="SELECT count(*) FROM histo"
  29. RS2 = conn.execute(SQL)
  30. Ntotal = RS2(0) - 1 ' commence à 0
  31. ' sélectionne les fiches de la table
  32. Set RS = server.createobject("ADODB.Recordset" )
  33. SQL="SELECT TOP " & (Ndeb+Nmax) & " * FROM histo where nom like '%"&mot&"%' or prenom like '%"&mot&"%' or classe like '%"&mot&"%' or annee like '%"&mot&"%' order by nom"
  34. RS.Open SQL,Conn , 3, 3%>
  35. Il y a <%=ntotal%> enregistrements d'anciens élèves :
  36.  <div align="center">
  37.   <table border="4" cellspacing="1" cellpadding="5" id="table12">
  38. <%' Avance à la 1ère
  39. RS.Move(Ndeb)
  40. ' tant qu'il reste des fiches
  41. while not RS.eof
  42.    ' affiche le champ%>
  43.        <tr>
  44.     <td valign="top" align="center"><a>
  45.     <p style="margin-top: 0; margin-bottom: 0"><%=response.write(Server.HTMLEncode(rs.Fields("prenom" ).Value))%></p>
  46.     <p style="margin-top: 0; margin-bottom: 0"><b><%=response.write(Server.HTMLEncode(rs.Fields("nom" ).Value))%></b></p>
  47.     </td>
  48.     <td align="center" valign="top"><a>
  49.     <p style="margin-top: 0; margin-bottom: 0"><%=response.write(Server.HTMLEncode(rs.Fields("classe" ).Value))%></p>&nbsp;</a><%=response.write(Server.HTMLEncode(rs.Fields("annee" ).Value))%></td>
  50.     <td align="center" valign="middle"><a>
  51.     <p style="margin-top: 0; margin-bottom: 0">
  52. <% email = Server.HTMLEncode(rs.Fields("email" ))%>
  53. <% if email = "pas de mail" then%>
  54.     <img border="0" src="../images/Noemail.gif" width="28" height="31">
  55. <% else%>
  56. <a href="mailto:<%=response.write(Server.HTMLEncode(rs.Fields("email" ).Value))%>?subject=Anciens élèves du lycée Loritz">
  57.     <img border="0" src="../images/email.gif" width="28" height="31"></a></td>
  58. <% end if%>   
  59.           <td><a>
  60.     <p style="margin-top: 0; margin-bottom: 0"><%=response.write(Server.HTMLEncode(rs.Fields("commentaire" ).Value))%></a> &nbsp;</tr>
  61.  <%RS.MOVENEXT
  62. wend%>
  63.  
  64.   </table></div>
  65. </BODY></HTML>
  66. </center>
  67. </td>
  68. </tr>
  69. </table>
  70. </body>
  71. <div align="center">
  72. &nbsp;<table cellpadding=0 id="table13" border="0" cellspacing="0">
  73. <tr>
  74. <% ' NAVIGATION
  75. ' Des fiches avant ?
  76. if Ndeb > 0 then%>
  77.      <td><b><A href="?num=0"><span style="text-decoration: none">
  78.  <img border="0" src="../images/test.a1.gif"></span></A> </b>&nbsp;<b><A href="?num=<%=Ndeb-Nmax%>"><span style="text-decoration: none"><img border="0" src="../images/test.a2.gif"></span></A>&nbsp;
  79.  </b>&nbsp;</td>
  80. <%end if%>
  81.      <td>
  82. <% ' Page courante
  83. Npag = int(Ndeb/Nmax)+1 : Npag2 = Npag-1
  84. tmp = "<b>" & Npag & "</b>"
  85. ' Max 3 pages avant
  86. while Npag2>0 AND Npag2>Npag-4
  87.    tmp = "<A href='?num=" & ((Npag2-1)*Nmax)_
  88.       & "'>" & Npag2 & "</A> " & tmp
  89.    Npag2 = Npag2-1
  90. wend
  91. ' Max 9 pages après
  92. Npag2 = Npag
  93. while Npag2*Nmax<=Ntotal AND Npag2<Npag+3
  94.    Npag2 = Npag2+1
  95.    tmp = tmp & " <A href='?num=" & ((Npag2-1)*Nmax)_
  96.       & "'>" & Npag2 & "</A>"
  97. wend
  98. response.write tmp
  99. %>
  100.    </td>
  101. <% ' Des fiches après ?
  102. if Ntotal>Ndeb+Nmax then%>
  103.      <td><b>&nbsp; <A href="?num=<%=Ndeb+Nmax%>">
  104.  <span style="text-decoration: none">
  105.  <img border="0" src="../images/test.a3.gif"></span></A></b> <b>
  106.  <A href="?num=<%=int(Ntotal/10)*10%>">
  107.  <span style="text-decoration: none">
  108.  <img border="0" src="../images/test.a4.gif"></span></A></b> </td>
  109. <%end if
  110. end if
  111. RS.close : set RS=nothing%>
  112. </html>
  113. &nbsp;</div>
  114.   <p>&nbsp;</div>
  115. </BODY></HTML>
  116. </div>
  117. <% conn.close : Set conn=nothing %>


mood
Publicité
Posté le 12-08-2008 à 10:08:39  profilanswer
 

n°1772571
h4rold
Posté le 12-08-2008 à 16:22:52  profilanswer
 

Le plus simple est que tu passe ton formulaire en GET (au lieu de POST) et que dans le liens vers la seconde page (la suite des resultats) tu reimprime les arguments GET que tu as recu et un element GET en plus que tu redetectera pour connaitre la suite.
Par exemple :
Premiere requete    connexion.asp?recherche=prout
Cette page imprime un lien vers  connexion.asp?recherche=prout&start=5
Il ne re restera plus qu'a detecter le start et d'incrementer a chaque fois.


Message édité par h4rold le 12-08-2008 à 16:23:43
n°1773138
Flyman30
Posté le 14-08-2008 à 09:59:23  profilanswer
 

le plus simple c'est de faire une pagination !  :o  
 
http://www.asp-php.net/tutorial/asp-php/pagination.php

n°1773870
extra
Posté le 17-08-2008 à 10:38:14  profilanswer
 

Bonjour,
 
flyman30 c'est le script que j'utilise....
 
H4rold j'y arrive pas je vais mettre nombre de résultats = 100 ou plus et je laisserai comme cela.
 
Merci à vous

n°1773961
Flyman30
Posté le 17-08-2008 à 21:16:47  profilanswer
 

extra a écrit :

Bonjour,
 
flyman30 c'est le script que j'utilise....
 
H4rold j'y arrive pas je vais mettre nombre de résultats = 100 ou plus et je laisserai comme cela.
 
Merci à vous


Ce code fonctionne très bien, tu as forcément fait une erreur de copié/collé je regarderais demain..
 
Bizarre je viens d'aller sur ton lien et la pagination fonctionne !?  :whistle:


Message édité par Flyman30 le 17-08-2008 à 21:21:31
n°1774043
extra
Posté le 18-08-2008 à 10:51:48  profilanswer
 

Bonjour,
 
La pagination fonctionne avec un tri fixe.
C'est a dire trier l'historique par nom ou année
 

Code :
  1. SQL="SELECT TOP " & (Ndeb+Nmax) & " * FROM histo where nom order by nom "


 
Pour la fonction rechercher :
Par contre pour trier avec le résultat du formulaire à la deuxième pas pagination il retombe sur :
 

Code :
  1. <%mot1=Request.Form("recherche" )
  2. mot=Replace(mot1,"'","''" )


et comme le formulaire a déjà été lu il n'y a plu rien et erreur "vous n'avez rien entré....
 
Il faudrait passer me paramètre mot1 d'une page à l'autre...
j'ai essayé avec GET, mais d'entée plus aucune page ne fonctionne il y a surement une syntaxe à changer et comme j'ai je suis pas doué pour cela  :sweat:  

n°1774556
Flyman30
Posté le 19-08-2008 à 18:04:53  profilanswer
 

Passe mot1 en session ...
session("mot1" ) = mot1

n°1774577
extra
Posté le 19-08-2008 à 20:13:35  profilanswer
 

salut flyman30,
 
si tu peux être un peu plus explicite :)
je le mets ou session("mot1" ) = mot1
 
merci

n°1774731
Flyman30
Posté le 20-08-2008 à 09:26:49  profilanswer
 

Tu as dans ton code  

Code :
  1. <%mot1=Request.Form("recherche" )
  2. mot=Replace(mot1,"'","''" )
  3. mot=Replace(mot,"<","&lt" )
  4. mot=Replace(mot,">","&gt" )%>
  5. <%if mot="" or mot=" " then%>


 
Fait :
 

Code :
  1. <%mot1=Request.Form("recherche" )
  2. mot=Replace(mot1,"'","''" )
  3. mot=Replace(mot,"<","&lt" )
  4. mot=Replace(mot,">","&gt" )%>
  5. session("mot" ) = mot
  6. <%if mot="" or mot=" " then%>


 
Il te suffit de faire la recherche sur session("mot" ) puisque c'est en mémoire tant que la session est valide.
 

n°1774802
extra
Posté le 20-08-2008 à 11:52:27  profilanswer
 

désolé flyman30, ca ne fonctionne pas....

mood
Publicité
Posté le 20-08-2008 à 11:52:27  profilanswer
 

n°1774855
extra
Posté le 20-08-2008 à 12:27:02  profilanswer
 

tu m'as donné une idée, mais ça ne garde toujours pas la variable "mot"
 
Le formulaire de recherche appelle : listR.asp
 

Code :
  1. <%mot1=Request.Form("recherche" )
  2. mot=Replace(mot1,"'","''" )
  3. mot=Replace(mot,"<","&lt" )
  4. mot=Replace(mot,">","&gt" )
  5. session("mot" ) = mot
  6. if mot="" or mot=" " then%>
  7.   <b>
  8.   Vous n'avez rien saisi !<BR>Merci d'écrire le nom à trouver sur
  9.   cet annuaire, puis de valider en cliquant sur "Rechercher"!<BR>&nbsp;
  10. </b>
  11. <%else
  12. Response.Redirect "res_recherche.asp"
  13. end if%>


 
Dans le fichier res_recherche.asp, je fais l'affichage paginé avec le critère de recherche "mot" sauf que "mot" est vide...
 

n°1774979
extra
Posté le 20-08-2008 à 15:08:27  profilanswer
 

j'ai trouvé :  :D  
 
dans la récupération du formulaire comme tu disais
 

Code :
  1. Session.Contents("mot" ) = mot


 
et dans le fichier d'affichage,
 

Code :
  1. <%mot=(Session("mot" ))%>


 
Par contre j'ai encore un bug
dans le cas ou on trouve rien j'ai une erreur...


Message édité par extra le 20-08-2008 à 15:10:08
n°1775128
Flyman30
Posté le 20-08-2008 à 19:05:51  profilanswer
 

Il suffit de faire un if error then et tu affiche que rien n'a été trouvé

n°1826964
francois c​right
Posté le 14-12-2008 à 20:41:53  profilanswer
 

Il existe une méthod beaucoup plus simple pour cela, il te faut le fichier ADOVBS.inc que tu peu trouver ici http://www.academyx.com/resources/documents/adovbs.txt
 
tu renome le ficher en adovbs.inc et tu le met sur ton serveur web.
 
dans ta page asp, tu importe le fichier comme suit:
 
<!--#include file=adovbs.inc-->
 
Ce fichier te permettra de faire ta pagination sans effort ou presque.
 
Exemple de code :
<!--#include file=adovbs.inc-->
<%
Dim iPage, pageSize
 
        ' nécessaire pour pour la premiere page
 If Request("page" ) = "" Then
  iPage = 1
 Else
  iPage = Request("page" )
 End If
 
        ' si tu veux que l'utilisateur choisisse lui même le nombre d'affichage par page
 If Request("size" ) = "" Then
  pageSize = 10
 Else
  pageSize = Request("size" )
 End If
 
 sql = "SELECT Caricature.PK, Caricature.Nom FROM Caricature ORDER BY Caricature.Ordre;"
 
        'tu dois au moins mettre adOpenKeyset pour la pagination
 rs.Open sql,cn,adOpenKeyset
 
        'si ton rs est a EOF ça fait une erreur, donc on valide
 If rs.EOF = False Then  
  rs.AbsolutePage = iPage
  rs.PageSize = pageSize
        Else
                Response.Write "Aucune occurrence trouvé"
 End If
 %>
        <form name=frm action=taPage.asp>
 <table>
  <tr><td>
                        <!--Afficher le nombre d'enregistrement trouvé-->
   <%=rs.RecordCount & " caricatures"%>
  </td><td>
                        <!--Navigation des pages avec un select-->
   Page  
   <select name=page onChange="document.frm.submit()">
   <%
                        'Création de la liste des pages par une boucle for
   For i = 1 To rs.PageCount%>
    <option value=<%=i%>><%=i%></option>
   <%
   Next%>
   </select>
  </td><td>
                        <!--Combien d'affichage par page-->
   Nombre par page
   <select name=size onChange="document.frm.submit()">
   <%
                        'Création de la liste du nombre d'affichage par page
   For i = 10 To 50 Step 10%>
    <option value=<%=i%>><%=i%></option>
   <%
   Next%>
  </td></tr>
 </table>
 
        <!--Affichage de la liste-->
 <table>
 <%
 For i = 1 To rs.PageSize
                'si on arrive à la fin du rs, on sort de la boucle
  If rs.EOF = True Then Exit For%>
   <tr><td>
    <%=rs("PK" )%>
   </td><td>
    <%=rs("Nom" )%>
   </td></tr>
  <%
  rs.MoveNext
 Next%>
 </table>


Message édité par francois cright le 14-12-2008 à 20:45:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] passage de variable d'une page à l'autre

 

Sujets relatifs
JSP rafraichir la pagePHP dans une page HTM ?
MS-DOS Variable du Système d'exploitation (%system...)...Comment faire pour transformer une variable en chaine UNICODE
[JS] Affichage d'une page pendant le chargement de la page[php] Transfére de variable
[RESOLU] VBA variable differente en fonction du bouton clickeEcrire le contenue de variables java applet dans la page html
Ma page s'imprime sans tenir compte du CSSEnlever un caractère de la valeur d'une variable
Plus de sujets relatifs à : [ASP] passage de variable d'une page à l'autre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR