PHP

Problème barre de recherche PHP/AJAX

Hello tout le monde !

Je suis en train de créer un site internet avec un espace membre.

Je souhaite réaliser une barre de rechercher et pour cela j'ai suivi ce tutoriel : https://www.sitedudev.com/cours/creer-son-site/22e9eabcb40749e7a8aaf2ed0aac8a2b

Tout fonctionne, mais j'ai un soucis qui se produit.

La recherche doit rechercher dans la table sav_dossier la table nameclient. Lorsque je tape les 3 premières lettres du nom, le script trouve bien le nom en question, mais dès que je tapes + de 3 lettres il ne me trouve plus rien ...


Code de la barre de recherche

<div class="form-group">
<input class="form-control" type="text" id="searchuser" value="" placeholder="Rechercher un dossier">
</div>
    <script>
      $(document).ready(function(){
        $('#searchuser').keyup(function(){
          $('#result-search').html('');


          var utilisateur = $(this).val();


          if(utilisateur != ""){
            $.ajax({
              type: 'GET',
              url: 'recherchesociete.php?mag=<?php echo $data['magasin']; ?>',
              data: 'user=' + encodeURIComponent(utilisateur),
              success: function(data){
                if(data != ""){
                  $('#result-search').append(data);
                }else{
                  document.getElementById('result-search').innerHTML = "<div style='font-size: 20px; text-align: center; margin-top: 10px'>Aucun résultat</div>"
                }
              }
            });
          } else {
                 $( "#result-search" ).load(window.location.href + " #result-search" );
                }
        });
      });
    </script>



Code du fichier recherchesociete.php

require_once('configuration/connect.php');


if(isset($_GET['user'])){
$user = $_GET['user'];


$query = $db->prepare("SELECT * FROM sav_dossier WHERE magasin='".$_GET['mag']."' AND nameclient LIKE ? LIMIT 10",
      array("$user%"));
$query->execute(array("$user%"));
$r = $query->fetch();


    $sql = $query->fetchALL();


    foreach($sql as $r){
      ?>


<?php
$sqll = 'SELECT * FROM sav_etat WHERE id = "'.$r['etat'].'" ';
$reqetat = $conn->query($sqll);
$dataetat = mysqli_fetch_array($reqetat);
?>
<a href="sav_view.php?id=<?= $r['id'] ?>" style="text-decoration:none;">
<div class="order mb-10">
<div style="background:#<?php echo $dataetat['couleur']; ?>;" class="order__blue order__header">
<div class="col-md-4">
Dossier n° <strong style="text-transform:uppercase;"><?= $r['id'] ?></strong>
</div>
<div class="col-md-8" style="text-align:right;">
Suivi par <strong style="text-transform:uppercase;">
<?php
$sqll = 'SELECT * FROM account WHERE id = "'.$r['usercreate'].'" ';
$reqmag = $conn->query($sqll);
$datamag = mysqli_fetch_array($reqmag);
?>	
<?php echo $datamag['prenom']; ?> <span style="text-transform:uppercase;"><?php echo $datamag['nom']; ?></span>
</strong>
</div>
</div>


<div class="order__container row">
<div class="col-md-3">
Date de création <strong style="text-transform:uppercase;"><?= $r['dateopened'] ?></strong>
</div>
<div class="col-md-3">
Client <strong style="text-transform:uppercase;"><?= $r['prenomclient'] ?> <?= $r['nameclient'] ?></strong>
</div>
<div class="col-md-3">
Fournisseur <strong style="text-transform:uppercase;"><?= $r['fournisseur'] ?></strong>
</div>
<div class="col-md-3">
Statut <strong style="text-transform:uppercase;">
<?php
$sqll = 'SELECT * FROM sav_etat WHERE id = "'.$r['etat'].'" ';
$reqetat = $conn->query($sqll);
$dataetat = mysqli_fetch_array($reqetat);
?>	


<?= $dataetat['name']; ?>


</strong>
</div>
</div>
</div>
</a>
<?php
}
}
?>


Je n'arrive pas à trouver le soucis, sachant que je ne maitrise pas le JS et l'AJAX à la perfection ^^

De plus, j'aimerais que la recherche se fasse dans la colonne prenomclient et nameclient, j'ai essayé de faire un concat mais le script ne fonctionne pas lorsque je fais cela.


Si l'un d'entre vous aurait le temps (mais aussi l'envie) de me fournir un petit coup de main je vous en serais très reconnaissant ! :-)


Belle soirée.

29 vues
04 mai 2024 à 23:19
Cette pub permet au site de vivre ...

Commentaire

Tu veux participer ?
Alors connecte toi ou inscris toi et viens participer !
Cette pub permet au site de vivre ...