Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
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.