IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Comment créer un formulaire de recherche?


Sujet :

ASP

  1. #21
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par Bird Voir le message
    l'erreur se produit au chargement de la page: Contact_Search.asp
    Dès le début? Et si tu essayes d'atteindre cette page sans passer par le formulaire?
    "Winter is coming" (ma nouvelle page d'accueil)

  2. #22
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    j'ai procédé comme vous l'avez expliqué VVA:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if request.form("slt_Fonction") <> 0 then
    	'objCmd.CommandText = "SELECT * FROM Personnel WHERE Fonction = '"&request.form("slt_Fonction")&" AND Nom LIKE '"&request.form("txt_Contact")&"%' ORDER BY Nom ASC"
    'ajouté
    response.write("slt_Fonction")
    response.write("txt_Contact")
    'fin ajout
    'else
    'objCmd.CommandText = "SELECT * FROM Personnel WHERE Nom LIKE '"&request.form("txt_Contact")&"%' ORDER BY Nom ASC"
    end if
    Mais, je ne récupère aucune valeur. Toujours la même page qui s'affiche: Impossible d'afficher la page...

    dans l'appel de la page Contact_Search.asp
    p.s je n'ai pas touché aux paramètres de connection ni de fermeture de la base de données.

    Est-ce que le problème peut venir du serveur où est hebergé mon site web?
    Réagis d'abord, réctifie après, mais ne reste pas les bras croisés à la recherche du parfait.

  3. #23
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Dès le début? Et si tu essayes d'atteindre cette page sans passer par le formulaire?
    Merci de répondre
    Citation Envoyé par Bird Voir le message
    Est-ce que le problème peut venir du serveur où est hebergé mon site web?
    Et si tu fais une page avec juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%response.write("Hello world!")%>
    Que se passe-t-il?
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #24
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    y a t il bien ceci en haut de ta page asp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Language=VBScript %>

  5. #25
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    oui immobilis la page Hello Word fonctionne.
    Oui VVA l'indication de VBscript exciste.

    Merci à vous deux de votre aide
    Réagis d'abord, réctifie après, mais ne reste pas les bras croisés à la recherche du parfait.

  6. #26
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    ok si la balise existe et si hello world fonctionne qu'elle est alors la première ligne de script de ta page car c'est là que cela plante

  7. #27
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Tu peux poster le code complet des pages en question?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  8. #28
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    voici le code des deux fichiers. Pour la base je n'arrive pas à la joindre, on me dit fichier non valide

    c'est une base de données access: Personnels.mdb

    Contenant une seule table: Personnel

    dont les champs sont:

    n (automatique) clé de la table.
    Nom (texte)
    Prenom (texte)
    Fonction (texte)
    Boitevocale (texte)
    courriel (texte)





    Contact_form.asp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <form name="SearchContact" method="post" action="Contact_Search.asp">
     
    <input type="TEXT" name="txt_Contact">
     
    <select name="slt_Fonction">
     
    <option value="0"></option>
     
    <option value="1">Administration</option>
    <option value="2">Enseignant</option>
    <option value="3">Professionnels</option>
    <option value="4">Soutien</option>
     
    </select>
    <input type="submit" value="Chercher">
    </form>
    Contact_Search.asp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
     
    <%@ Language=VBScript %>
    <%
    ' ------------------------
    ' pavé d'ouverture de connexion et de création de l'objet recordset
    Set dbConnection = Server.CreateObject("ADODB.Connection")
     
    dbConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("ecole/Personnels.mdb")&"; Persist Security Info=False"
     
    ' ------------------------
    set objRs = Server.CreateObject("ADODB.Recordset")
    set objCmd = Server.CreateObject("ADODB.Command")
    set objCmd.ActiveConnection = dbConnection
    ' ------------------------
    ' requete
     
    if request.form("slt_Fonction") <> 0 then
    	objCmd.CommandText = "SELECT * FROM Personnel WHERE Fonction = '"&request.form("slt_Fonction")&" AND Nom LIKE "&request.form("txt_Contact")&"%' ORDER BY Nom ASC"
     
    else
    objCmd.CommandText = "SELECT * FROM Personnel WHERE Nom LIKE '"&request.form("txt_Contact")&"%' ORDER BY Nom ASC"
    end if
    set objRs = objCmd.Execute
    ' ------------------------
    ' affichage du resultat de la requete
    if (objRs.BOF And objRs.EOF) then
    	response.write "Désolé, aucun contact ne correspond à votre recherche"
    else
    	response.write"<table><tr><td>Nom</td><td>Prénom</td><td>Fonction</td><td>Boîte vocale</td><td>Mail</td></tr>"
    	do while not objRs.EOF
    		response.write"<tr><td>"&trim(objRs("Nom"))&"</td><td>"&trim(objRs("Prenom"))&"</td><td>"&trim(objRs("Fonction"))&"</td><td>"&trim(objRs("boitevocale"))&"</td><td>"&trim(objRs("courriel"))&"</td></tr>"
    		objRs.MoveNext
    	loop
    	response.write "</table>"	
    end if
    ' ------------------------
    ' fermeture de la connexion
    objRs.Close
    set objRs = nothing
    set objCmd = nothing
    dbConnection.Close
    Set dbConnection = nothing
    %>
    Je vous remercie de votre aide continue.
    Réagis d'abord, réctifie après, mais ne reste pas les bras croisés à la recherche du parfait.

  9. #29
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    bonjour,

    niveau code je ne vois pas de coquille par contre cette cette remarque résume bien la situation -> c'est là qu'il faut chercher du côté d'access

    Pour la base je n'arrive pas à la joindre, on me dit fichier non valide

  10. #30
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Lorsque vous utilisez la syntaxe .. server.mappath("Personnels.mdb") ...
    Il faut créer sous IIS manager votre site (faire un click droit -> propriétés -> création). La création de votre site permet l'accès de type http://localhost/personnel/ ....

    Si le site n'est pas créé, server.mappath ne renvoit pas le repertoire en cours mais celui de system32.

    J'espère vous avoir éclairé.

  11. #31
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    c'est ce que j'avais demandé de vérifier en tout début de réponse du post ? alors est-ce fait ?

  12. #32
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Oui VVA le site est créé.

    J'ai installé le IIS pour faire des tests en local.

    Lorsque je ne rentre rien comme Nom, le message ''désolé...'' fonctionne
    Par contre lorsque je rentre un nom de personne après avoir choisi la fonction dans la liste déroulante, le même message apparaît.

    Je vais faire en sorte que le tout fonctionne en local d'abord et ensuite je téléverse cela à distance.
    Qu'en pensez-vous?
    Réagis d'abord, réctifie après, mais ne reste pas les bras croisés à la recherche du parfait.

  13. #33
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    regarde ton SQL il y a une erreur de '

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE Fonction = '"&request.form("slt_Fonction")&"
    si ton champ est numérique il faut retirer la ' derriere le = sinon il faut en ajouter une après le &"

    essaye mais je crois que cela vient de là

  14. #34
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Bonjour,



    EN Local
    en faisant ces changements en local, lorsque je ne selectionne rien dans la liste des fonctions (liste déroulante), on m'affiche la liste des noms, prénoms, fonction, boitevocales, couriels. ça fonctionne!

    Par contre lorsque je tappe un nom dans la zone texte, ça ne fonctionne pas: page blanche avec impossible d'afficher la page.


    À distance: rien ne fonctionne!

    voici le code du fichier Contact_Search.asp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <%@ Language=VBScript %>
    <%
    ' ------------------------
    ' pavé d'ouverture de connexion et de création de l'objet recordset
    Set dbConnection = Server.CreateObject("ADODB.Connection")
     
    dbConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("Personnels.mdb")&"; Persist Security Info=False"
     
    ' ------------------------
    set objRs = Server.CreateObject("ADODB.Recordset")
    set objCmd = Server.CreateObject("ADODB.Command")
    set objCmd.ActiveConnection = dbConnection
    ' ------------------------
    ' requete
     
    if request.form("slt_Fonction") <> 0 then
    	objCmd.CommandText = "SELECT * FROM Personnel WHERE Fonction = '"&request.form("slt_Fonction")&"' AND Nom LIKE '"&request.form("txt_Contact")&"%' ORDER BY Nom ASC"
     
    else
    objCmd.CommandText = "SELECT * FROM Personnel WHERE Nom LIKE '"&request.form("txt_Contact")&"%' ORDER BY Nom ASC"
    end if
    set objRs = objCmd.Execute
    ' ------------------------
    ' affichage du resultat de la requete
    if (objRs.BOF And objRs.EOF) then
    	response.write "Désolé, aucun contact ne correspond à votre recherche"
    else
    	response.write"<table><tr><td>Nom</td><td>Prénom</td><td>Fonction</td><td>Boîte vocale</td><td>Mail</td></tr>"
    	do while not objRs.EOF
    		response.write"<tr><td>"&trim(objRs("Nom"))&"</td><td>"&trim(objRs("Prenom"))&"</td><td>"&trim(objRs("Fonction"))&"</td><td>"&trim(objRs("boitevocale"))&"</td><td>"&trim(objRs("courriel"))&"</td></tr>"
    		objRs.MoveNext
    	loop
    	response.write "</table>"	
    end if
    ' ------------------------
    ' fermeture de la connexion
    objRs.Close
    set objRs = nothing
    set objCmd = nothing
    dbConnection.Close
    Set dbConnection = nothing
    %>
    Voci un rappel de mes champs:

    Id: num automatique
    Nom: texte
    Prenom: texte
    Fonction: texte
    Boitevocale: Texte
    Courriel: Texte.


    Merci de votre aide.
    Réagis d'abord, réctifie après, mais ne reste pas les bras croisés à la recherche du parfait.

  15. #35
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Tu peux déjà essayer de préserver les types lors des comparaisons. "Request" renvoi systématiquement des chaines. Donc,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.form("slt_Fonction") <> 0
    devrait être remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.form("slt_Fonction") <> "0"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcomp(request.form("slt_Fonction"), "0") <> 0
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clng(request.form("slt_Fonction")) <> 0
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  16. #36
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 23
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    J'ai opté pour un formulaire plus simple: j'ai enlevé la liste déroulante pour le choix de la fonction.

    Fichier Contact_form.asp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Saisissez le nom du personnel recherché ou uniquement le début de son nom de famille et appuyez ensuite sur Chercher.
     
    <form name="SearchContact" method="post" action="Contact_Search.asp">
     
    <input type="TEXT" name="txt_Contact">
     
     
    <input type="submit" value="Chercher">
    </form>
    Fichier: Contact_search.asp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <%@ Language=VBScript %>
    <%
    ' ------------------------
    ' pavé d'ouverture de connexion et de création de l'objet recordset
    Set dbConnection = Server.CreateObject("ADODB.Connection")
     
    dbConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("Personnels.mdb")&"; Persist Security Info=False"
     
    ' ------------------------
    set objRs = Server.CreateObject("ADODB.Recordset")
    set objCmd = Server.CreateObject("ADODB.Command")
    set objCmd.ActiveConnection = dbConnection
     
     
    if  request.form("txt_Contact")<> "0" then  
     
    objCmd.CommandText = "SELECT * FROM Personnel WHERE Nom LIKE '"&request.form("txt_Contact")&"%' ORDER BY Nom ASC"
    end if
    set objRs = objCmd.Execute
    ' ------------------------
    ' affichage du resultat de la requete
    if (objRs.BOF And objRs.EOF) then
    	response.write "Désolé, aucun contact ne correspond à votre recherche"
    else
    	response.write"<table border=2><tr><td>Nom</td><td>Prénom</td><td>Fonction</td><td>Boîte vocale</td><td>Mail</td></tr>"
    	do while not objRs.EOF
    		response.write"<tr><td>"&trim(objRs("Nom"))&"</td><td>"&trim(objRs("Prenom"))&"</td><td>"&trim(objRs("Fonction"))&"</td><td>"&trim(objRs("boitevocale"))&"</td><td>"&trim(objRs("courriel"))&"</td></tr>"
    		objRs.MoveNext
    	loop
    	response.write "</table>"	
    end if
    ' ------------------------
    ' fermeture de la connexion
    objRs.Close
    set objRs = nothing
    set objCmd = nothing
    dbConnection.Close
    Set dbConnection = nothing
    %>

    Tout fonctionne bien, même à distance.
    Je vous remercie tous de votre disponibilité à m'aider.
    Réagis d'abord, réctifie après, mais ne reste pas les bras croisés à la recherche du parfait.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/06/2008, 13h30
  2. Réponses: 3
    Dernier message: 18/08/2006, 19h05
  3. Réponses: 7
    Dernier message: 01/08/2006, 16h02
  4. comment valider un formulaire de recherche ?
    Par loady dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/07/2006, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo