Bonjour,

J'ai un soucis au niveau de mon formulaire de message dans lequel j'ai mis le destinataire avec auto-complétion seul soucis c'est lorsque je tape par exemple "je" il m'affiche bien le résultat jean,jeanne et lorsque je click sur jean il me remplit mon input jusque là tout va bien or j'ai lié le nom du destinataire avec son id pour envoyer le message cependant pour que cela fonctionne il faut que mon input soit remplit par jean et que l'auto-complétation me propose que jean or la il me propose encore jeanne voici mon code javascript:

<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(function(){
$(".search").keyup(function()
{
var searchid = $(this).val();
var dataString = 'search='+ searchid;
if(searchid!='')
{
    $.ajax({
    type: "POST",
    url: "search.php",
    data: dataString,
     minLength: 3,
        autoFocus: true,
    cache: true,
    html: true,
    success: function(html)
    {
    $("#result").html(html).show();
    }
    });
}return false;   
});
 
jQuery("#result").live("click",function(e){
    var $clicked = $(e.target);
    var $name = $clicked.find('.name').html();
    var decoded = $("<div/>").html($name).text();
    $('#searchid').val(decoded);
});
jQuery(document).live("click", function(e) {
    var $clicked = $(e.target);
    if (! $clicked.hasClass("search")){
    jQuery("#result").fadeOut();
    }
});
$('#searchid').click(function(){
    jQuery("#result").fadeIn();
});
});
</script>

<input type="text" autocomplete="off"  name="destinataire" class="search" id="searchid" placeholder="Utilisateur" style="margin-bottom:10px;width:90%; margin-right:auto;margin-left:auto;" > <br />
 
</input>

et mon search.php

<?php
session_start();
if (!isset($_SESSION['login'])) {
    header ('Location: index.php');
    exit();
}
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
mysql_select_db("test");
$user = $_SESSION['login'];
 
$reponse = $bdd->query("SELECT * FROM membre WHERE login='$user'");
 
while ($donnees = $reponse->fetch())
{
    $id = $donnees['id'];
}
$reponse->closeCursor();
function safe($value){
   return mysql_real_escape_string($value);
}
 
if($_POST)
{
$q=safe($_POST['search']);
$sql_res=mysql_query("select Login,Avatar,id from membre where Login like '%$q%' AND id <> $id order by id LIMIT 5")
or die(mysql_error());
while($row=mysql_fetch_array($sql_res))
{
$id_dest=$row['id'];
$_SESSION['dest']=$id_dest;
$username=safe($row['Login']);
$final_username = $username;
$Avatar=$row['Avatar'];
if(empty($Avatar)) $Avatar= "http://martinpaulus.be/logo/sites/default/files/default_images/default-avatar-200x200.jpg";
else echo '<img src="'.empty($Avatar).'" alt=""/>';
?>
<div class="show" align="left">
<img src="<?php $id_dest; echo $Avatar ?>" style="width:50px; height:50px; float:left; margin-right:6px;" /><span class="name"><?php $id_dest; echo $final_username?><br/>
</div>
<?php
}
}
?>

En gros je veux que ma liste se mette automatiquement a jour lorsque l'utilisateur click sur le nom d'un utilisateur et quelle ne m'affiche pas les anciens resultats
merci d'avance
Modérateur
Salut,

C'est quoi ça ?


<input type="text" autocomplete="off"  name="destinataire" class="search" id="searchid" placeholder="Utilisateur" style="margin-bottom:10px;width:90%; margin-right:auto;margin-left:auto;" > <br />
 
</input>



a écrit :
Ah bah ma petite dame, on verra bien si ça marche. S'il y en a plus, je vous l'emballe ?


try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
mysql_select_db("test");


voilà encore un exemple : comment brûler les étapes....
Modifié par niuxe (08 May 2014 - 15:34)
Bonjour,
C'est le champ dans lequel je tape le nom du destinataire de mon message
J'ai résolu mon soucis avec $(".search").keyup() cependant j'ai un petit soucis lorsque je tape la lettre "J" et qu'il m'affiche jean et jeanne et que je click sur jean il me récupére l'id du dernier de la liste donc ici jeanne or j'aimerais qu'il me recupére l'id de jean.