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

Langage PHP Discussion :

Création d'une barre de recherche ainsi que de champs dynamiques


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 13
    Par défaut Création d'une barre de recherche ainsi que de champs dynamiques
    Bonjour tout le monde,

    Je viens vers vous pour obtenir de l'aide pour une barre de recherche et aussi des champs dynamiques. Cela doit être très simple, je pense mais je ne comprend pas, cela fait quelques jours que je suis bloqué sur tout ça.

    Commençons par la recherche:

    J'essaie de faire une barre de recherche qui, quand je clique sur rechercher ou sur entrée, ouvre une autre page avec les résultat (dans mon cas les clients et une liste de leur fiches associées).
    J'ai commencé par essayer de passer par l'url une valeur pour que la page de résultat puisse trier par rapport à cette valeur et je pense que c'est la que sa bloque. Voici mon code :


    Le php de la page de résultat :
    recherche.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php 
    			include "../include/fonctions.php";
    			$connex = connexion_bd();
     
    			$req=("SELECT * FROM client WHERE Num_Client LIKE '%$requete%' OR Nom_Client LIKE '%$requete%' OR Prenom_Client LIKE '%$requete%' ORDER BY id DESC") or die (mysql_error());
    			$res=$connex->query($req);
    			$donnees="";
    		?>

    La barre de recherche :
    menu.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       <form class="navbar-form navbar-right" action="../pages/recherche.php?recherche=<?php echo $row->requete;?>" method="POST">
                    <div class="form-group">
                      <div class="input-group">
                        <input class="form-control" placeholder="Search" name="requete" type="search">
                        <span class="input-group-btn">
                        <button type="submit" class="btn" value="recherche"><span class="fui-search"></span></button>
                        </span>
                      </div>
                    </div>
                  </form>


    Ensuite, par champs dynamiques, je veut dire que quand je sélectionne un client, je voudrais que son adresse apparaisse ainsi que son téléphone. Il faudrait pouvoir modifier le numéro de téléphone. En faite, pour tout vous dire, tout cela sera présent dans des fiches où il y aura indiquer quel symptôme à un PC, à qu'elle client il appartient, etc.. Et ainsi le champs d'adresse permettrait d'identifier encore mieux le client à l'ajout de la fiche et la modification du téléphone serais utile dans le cas où le client change de numéro entre temps. Je pense que mon erreur viens de la requête.
    Donc voici le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //Voici le code php pour le champ :
    	$reqadresse="SELECT Num_Client, Adresse_Client FROM client WHERE Num_Client = ajoutfiche.clientajoutfiche.value";
    	$resadresse=$connex->query($reqadresse);
     
     
    <!-- Voici le champ lui-même : -->
     
    <input value="<?php echo $resadresse?>"><br>

    Donc voilà, je pense avoir expliqué et donné assez d'informations mais si il vous en faut plus, demandez moi !
    Sur ce, je vous souhaite une bonne journée et merci pour l'aide d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    D'ou vient $row->requete que tu as mis dans l'url d'action et qu'est-il censé faire ici ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 13
    Par défaut
    Bonjour,
    donc se row à pour but de lire le champs input qu'il y a juste en dessous. Il permettrais de récupéré la recherche saisie et de l'envoyer par l'URL au moment du submit, donc à l'envoi du formulaire. Ensuite, il faut récupérer la valeur sur la page résultat, voilà.


    Récupération de la valeur dans recherche.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    			$requete= $_POST['recherche'];
    			$req=("SELECT * FROM client WHERE Num_Client LIKE '%$requete%' OR Nom_Client LIKE '%$requete%' OR Prenom_Client LIKE '%$requete%' ORDER BY id DESC") or die (mysql_error());

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    il faut que tu apprennes les bases de PHP et des formulaires.

    Il n'y a rien besoin d'ajouter à l'url : la valeur est fournie par le champs input tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      <form class="navbar-form navbar-right" action="../pages/recherche.php" method="POST">
                    <div class="form-group">
                      <div class="input-group">
                        <input class="form-control" placeholder="Search" name="requete" type="search">
    Et à l'arrivée on fait une requête préparée, on n'introduit jamais directement les données externes (et on ne mélange pas l'extension mysql et PDO)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req="SELECT * FROM client WHERE Num_Client LIKE ? OR Nom_Client LIKE ? OR Prenom_Client LIKE ? ORDER BY id DESC";
    $sth =$connex->prepare($req);
    $requete = '%' . $_POST['requete'] . '%';
    $sth->execute(array($requete, $requete, $requete));
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 13
    Par défaut
    Ah merci beaucoup c'est déjà mieux ! Mais j'ai des erreurs comme celle-là sur tout les champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Notice: Trying to get property of non-object in C:\wamp\www\Declik\pages\recherche.php on line 48
    J'ai assez souvent cette erreur et je sais jamais la corrigée et en cherchant sur internet pleins de monde l'ont mais je ne trouve pas de sujet avec un rapport au miens


    Voici le code la page recherche.php si tu as besoin :


    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
    45
    46
    47
    48
    49
     
     
    <body>
     
    <?php include "../include/menu.php"; ?>
     
    		<?php 
    			include "../include/fonctions.php";
    			$connex = connexion_bd();
    			$req="SELECT * FROM client WHERE Num_Client LIKE ? OR Nom_Client LIKE ? OR Prenom_Client LIKE ? ORDER BY Num_Client DESC";
    			$sth =$connex->prepare($req);
    			$requete = '%' . $_POST['requete'] . '%';
    			$sth->execute(array($requete, $requete, $requete));
    			$donnees="";
    		?>
     
    		<div align="center"><table class="tatable">
     
    				<p><input class="bouton" type="submit" name="delete" id="delete" class="delete"  value="Supprimer la sélection">
    				<input class="bouton" type="button" value="Ajouter un client(e)" onclick="location.href='javascript:ajoutclientpop();';"></p>
    				<tr>
    					<th>Numéro</th>
    					<th>Nom</th>
    					<th>Prénom</th>
    					....
    					<th>Sélection</th>
    					<th>Supprimer</td>
    				</tr>
     
     
     
    				<?php while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {?>
    				<tr>
    					<td><?php echo $row->Num_Client?></td>
    					<td><a href="javascript:PopupWindow(this,'../formulaire/client.form.modifier.php?client_id=<?php echo $row->Num_Client?>');"><?php echo $row->Nom_Client?></a></td>
    					<td><?php echo $row->Prenom_Client?></td>
    					<td><?php echo $row->Adresse_Client?></td>
    					<td><?php echo $row->CP_Client?></td>
    					<td><?php echo $row->Ville_Client?></td>
    					<td><?php echo $row->Telephone_Client?></td>
    					<td><?php echo $row->Portable_Client?></td>
    					<td><?php echo $row->Mail_Client?></td>
    					<td><input type="checkbox" name="del[]" value="<?php echo $row->Num_Client?>" class="del" id="del"/> </td>
    					<td><a href="../include/supprimer_client.php?client_id=<?php echo $row->Num_Client?>"><img src="../image/supprimer.png"></a></td>
    				</tr>
    				<?php }?>
    			</table> 
    		</div>
    	</body>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    L'erreur parle d'elle même : tu essaies d'obtenir une priorité sur quelque chose qui n'est pas un objet.
    En résumé dans ton code tu as écris quelque part :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pasunobjet->quelquechose
    Dans ce cas précis, c'est $row qui n'était pas un objet.
    Pour avoir un objet c'est la méthode FETCH_OBJ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($row = $sth->fetch(PDO::FETCH_OBJ)) {
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Une barre de recherche Qt pour Firefox
    Par Alp dans le forum Qt
    Réponses: 3
    Dernier message: 07/02/2008, 19h37
  2. Création d'une barre outil système
    Par sl.info dans le forum Access
    Réponses: 3
    Dernier message: 06/07/2007, 22h11
  3. [VBA]Création d'une procédure de recherche
    Par Thegad dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/04/2007, 19h16
  4. [VBA-E]erreur sur création d'une barre de menu
    Par roseau dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/03/2007, 12h17
  5. [PHP-JS] Création d'une barre de navigation
    Par Justin_C dans le forum Langage
    Réponses: 16
    Dernier message: 02/01/2007, 18h32

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